ExpressionParsing::PointerCache< T, MEMORY_ORDER > Node1 ExpressionParsing:: PointerCache< T, MEMORY _ORDER >   + PointerCache() + ~PointerCache() + setIfUnset() + setIfUnset() + operator bool() + operator->() - setPointer() Node2 std::atomic< const T * >     Node2->Node1 -m_ptr Node3 T     Node3->Node2 +ptr Node4 std::atomic< bool > + ptr   Node4->Node1 -m_owner