13#ifndef ATHCONTAINERS_VIEWVECTOR_H
14#define ATHCONTAINERS_VIEWVECTOR_H
21#include "AthLinks/ElementLink.h"
91 typedef std::vector<ElementLink<DV> >
Pers_t;
127 template <
class InputIterator>
260#ifndef XAOD_STANDALONE
279#ifndef XAOD_STANDALONE
325 if (
s_clid == CLID_NULL) {
343#ifdef XAOD_STANDALONE
348#define VIEWVECTOR_CLASS_DEF(NAME, CID)
355#define VIEWVECTOR_CLASS_DEF(NAME, CID) \
357 static const bool clidinit_##CID = ClassID_traits<NAME>::init (CID, #NAME); \
358 CLIDREGISTRY_ADDENTRY(CID, NAME)
Exceptions that can be thrown from AthContainers.
Provide an interface for finding inheritance information at run time.
uint32_t CLID
The Class ID type.
Hold the persistent representation for a ViewVector.
std::atomic< CLID > ClassID_traits< ViewVector< DV > >::s_clid
std::atomic< const char * > ClassID_traits< ViewVector< DV > >::s_name
Hold the persistent representation for a ViewVector.
Identify view containers to be made persistent.
void registerBaseInit()
Helper to ensure that the inheritance information for this class gets initialized.
std::vector< ElementLink< DV > > Pers_t
The old persistent form of this class.
ViewVector(const ViewVector &)=default
Use the compiler-generated copy constructor.
ViewVector(std::initializer_list< value_type > l)
Constructor from an initializer list.
DV::const_pointer const_pointer
static constexpr bool must_own
void clear(SG::OwnershipPolicy ownPolicy, SG::IndexTrackingPolicy trackIndices)
virtual void toTransient() override
Convert the vector to transient form.
void clear(SG::OwnershipPolicy ownPolicy)
ViewVector(DV &&rhs)
Move constructor from base vector.
ViewVector(InputIterator first, InputIterator last)
Constructor from iterators.
DV::const_reverse_iterator const_reverse_iterator
DV::unique_type unique_type
ViewVector(const DV &rhs)
Constructor from base vector.
virtual void toPersistent() override
Convert the vector to persistent form.
DV::size_type size_type
Basic types, forwarded from the base.
DV::const_reference const_reference
DV::value_type value_type
DV::base_value_type base_value_type
DV::const_value_type const_value_type
DV::difference_type difference_type
ViewVector(ViewVector &&rhs)
Move constructor.
DV::const_iterator const_iterator
DV::allocator_type allocator_type
DV::BaseContainer BaseContainer
ViewVector & operator=(const ViewVector &rhs)=default
Can use compiler-generated assignment op.
ViewVector(SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
Default constructor.
ViewVector(size_type n, SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
Sized constructor.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
void throwExcMissingViewVectorCLID(const std::type_info &ti)
Throw a SG::ExcMissingViewVectorCLID exception.
static std::atomic< CLID > s_clid
static const char * typeNameString()
static const bool s_isConst
static std::atomic< const char * > s_name
static const std::type_info & typeInfo()
static const std::string & typeName()
std::false_type has_version_tag
std::true_type has_classID_tag
static const bool s_isDataObject
static bool init(CLID clid, const char *name)
Default, invalid implementation of ClassID_traits.
Represent a list of base classes.
Traits class to hold derivation information.