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;
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
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
typename CIBase::xAODObjectRangeType xAODObjectRangeType
std::map< std::string, HypoJetVector >::const_iterator CI