#include <xorptr.h>
Public Member Functions | |
| xorptr_t (T *ptr1, T *ptr2) | |
| Constructor: supperpose internal values ptr1 and ptr2. | |
| T * | swap (T *fromPtr) const |
| Swap pointer (between ptr1 and ptr2 used originally). | |
Private Attributes | |
| uintptr_t | ptr1xor2 |
| supperposition of 2 pointers | |
Xor between a pointer and an int: sounds scary but it is a very efficient way to swap 2 pointers:
The original idea of supperposing 2 states into one (here 2 pointers) in such a way that you get information on one state only by observing the other state comes from quantum mechanics.
|
||||||||||||||||
|
Constructor: supperpose internal values ptr1 and ptr2.
|
|
||||||||||
|
Swap pointer (between ptr1 and ptr2 used originally).
|
|
|||||
|
supperposition of 2 pointers
|
1.4.2