There is one difficulty in using garbage collection in C ++ to determine what a pointer is and what is not.
, , , : , , . " ", ( 64 ) XOR , " ".
, ++ 0x, ABI, Garbage Collection. n3225 20.9.11 [util.dynamic.safety]. , , :
void declare_reachable(void* p);
template <typename T> T* undeclare_reachable(T* p) noexcept;
void declare_no_pointers(char* p, size_t n) noexcept;
void undeclare_no_pointers(char* p, size_t n) noexcept;
pointer_safety get_pointer_safety() noexcept;
( ) . , , , , . new delete, ...
, : ( ) Mark And Sweep - , ( , / ,...).