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");
136 static constexpr std::array<std::string_view,numVariants>
idNameArray = {CIList::idName...};
138 template<ContainerIdConcept CI>
141 return (... || std::is_same_v<CI,CIList>);
145 template<ContainerIdConcept CI>
148 constexpr unsigned index = boost::mp11::mp_find<std::tuple<CIList...>,
CI>::value;
concept for a container id
static constexpr std::array< std::string_view, numVariants > idNameArray
static constexpr unsigned getVariantIndex()
get the index of the given container in the list
static constexpr bool isContainerId
static constexpr std::size_t numVariants
static constexpr bool variantObjectId
boost::mp11::mp_list< CIList... > mpCIList
typename CIBase::xAODObjectIdType xAODObjectIdType
static constexpr bool perEventRange
static constexpr bool isMutable
static constexpr bool perEventId
static constexpr bool isValidContainer()
typename CIBase::xAODElementLinkType xAODElementLinkType
static constexpr bool regularObjectId
typename CIBase::xAODObjectRangeType xAODObjectRangeType
std::map< std::string, HypoJetVector >::const_iterator CI