 |
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef COLUMNAR_VARIANT_VARIANT_DEF_H
9 #define COLUMNAR_VARIANT_VARIANT_DEF_H
13 #include <boost/mp11/list.hpp>
14 #include <boost/mp11/algorithm.hpp>
99 static_assert (
sizeof...(CIList) > 0,
"need to have at least one variant container type for VariantContainerId");
130 static constexpr std::array<std::string_view,numVariants>
idNameArray = {CIList::idName...};
132 template<ContainerIdConcept CI>
135 return (... || std::is_same_v<CI,CIList>);
139 template<ContainerIdConcept CI>
142 constexpr
unsigned index = boost::mp11::mp_find<std::tuple<CIList...>,
CI>
::value;
static constexpr unsigned getVariantIndex()
get the index of the given container in the list
static constexpr std::size_t numVariants
static constexpr bool isMutable
whether this is a non-const container
std::map< std::string, HypoJetVector >::const_iterator CI
typename CIBase::xAODObjectIdType xAODObjectIdType
the xAOD type to use with ObjectId
typename CIBase::xAODElementLinkType xAODElementLinkType
the xAOD type to use with ElementLink
static constexpr bool perEventId
whether this can be retrieved as a single object per event
boost::mp11::mp_list< CIList... > mpCIList
static constexpr bool isValidContainer()
static constexpr bool isContainerId
identify this as a container id definition
concept ContainerIdConcept
concept for a container id
static constexpr bool perEventRange
whether this can be retrieved as a range per event
static constexpr std::array< std::string_view, numVariants > idNameArray
typename CIBase::xAODObjectRangeType xAODObjectRangeType
the xAOD type to use with ObjectRange