ObjContainer< T_Obj > Node1 ObjContainer< T_Obj > # m_freeIdx # s_externalObj # s_releasedObj + ObjContainer() + ~ObjContainer() + isValid() + search() + size() # registerObj() # registerObj() # share() # drop() # get() # get() # release() # isOwned() # isShared() # isExtern() and 6 more... Node2 std::vector< std::pair < T_Obj *, short > > + elements Node2->Node1 #m_objs