#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
|