xAOD::TCDVHolderT< T > Node1 xAOD::TCDVHolderT< T > + TCDVHolderT() + set() + getAs() + getAsConst() Node2 xAOD::THolder # m_object # m_typeInfo # m_owner # m_typeKind # m_const + THolder() + THolder() + THolder() + THolder() + THolder() + THolder() + THolder() + ~THolder() + operator=() + operator=() and 12 more... # deleteObject() # getImpl() * getClass() * getClass() * getTypeInfo() Node2->Node1 Node2->Node1 -m_holderHelper Node3 TClass Node3->Node2 #m_type Node4 ConstDataVector< T > + has_virtual + must_own + ConstDataVector() + ConstDataVector() + ConstDataVector() + ConstDataVector() + ConstDataVector() + ConstDataVector() + ConstDataVector() + ConstDataVector() + operator=() + operator=() + operator=() + assign() + assign() + assign() + operator[]() + at() + front() + back() + begin() + end() + rbegin() + rend() + push_back() + push_back() + emplace_back() + insert() + insert() + insert() + insert() + emplace() + erase() + erase() + clear() + operator<() + operator>() + operator<=() + operator>=() + operator==() + operator!=() * DataModel_detail::Element Proxy< ConstDataVector > * test2_assignelement1 * test2_assignelement1a * assignElement() * assignElement() * assignBaseElement() * to_my_iterator() * to_element_proxy() * to_base_iterator() * ConstDataVector() * ConstDataVector() * ConstDataVector() * ConstDataVector() * ConstDataVector() * ConstDataVector() * ConstDataVector() * ConstDataVector() * operator=() * operator=() * operator=() * assign() * assign() * assign() * operator[]() * at() * front() * back() * begin() * end() * rbegin() * rend() * push_back() * push_back() * emplace_back() * insert() * insert() * insert() * insert() * emplace() * erase() * erase() * clear() * clear() * clear() * swapElement() * swapElement() * swapElement() * swapElement() * asDataVector() * resortAux() * auxbase() * fromDataVector() * swap() * iter_swap() * operator<() * operator>() * operator<=() * operator>=() * operator==() * operator!=() Node4->Node1 -m_cdvObject Node5 T Node5->Node4