CxxUtils::CachedPointer< T > Node1 CxxUtils::CachedPointer< T > - m_e + CachedPointer() + CachedPointer() + CachedPointer() + CachedPointer() + operator=() + set() + store() + get() + ptr() Node2 std::atomic< pointer_t > + ptr Node2->Node1 -m_a