1 #ifndef FWCore_SOA_TableExaminer_h 2 #define FWCore_SOA_TableExaminer_h 47 size_t size() const override final {
return m_table->size(); }
49 void const*
columnAddress(
unsigned int iColumnIndex)
const override final {
50 return m_table->columnAddressByIndex(iColumnIndex);
53 std::vector<std::type_index>
columnTypes() const override final {
54 std::vector<std::type_index> returnValue;
56 using Layout =
typename T::Layout;
57 columnTypesImpl<0, T::kNColumns>(returnValue,
static_cast<std::true_type*
>(
nullptr));
61 std::vector<std::pair<char const*, std::type_index>>
63 std::vector<std::pair<char const*, std::type_index>> returnValue;
65 using Layout =
typename T::Layout;
66 columnDescImpl<0, T::kNColumns>(returnValue,
static_cast<std::true_type*
>(
nullptr));
70 const std::type_info*
typeID() const override final {
75 template <
int I,
int S>
77 using Layout =
typename T::Layout;
79 columnTypesImpl<I+1, S>(iV,
80 static_cast<typename std::conditional<
I+1 !=
S,
82 std::false_type
>::type*>(
nullptr));
85 template <
int I,
int S>
88 template <
int I,
int S>
89 void columnDescImpl(std::vector<std::pair<char const*, std::type_index>>& iV,
90 std::true_type*)
const {
91 using Layout =
typename T::Layout;
94 columnDescImpl<I+1, S>(iV,
95 static_cast<typename std::conditional<
I+1 !=
S,
97 std::false_type
>::type*>(
nullptr));
100 template <
int I,
int S>
102 std::false_type*)
const {};
void columnDescImpl(std::vector< std::pair< char const *, std::type_index >> &, std::false_type *) const
size_t size() const override final
std::vector< std::pair< char const *, std::type_index > > columnDescriptions() const override final
void const * columnAddress(unsigned int iColumnIndex) const override final
TableExaminer< T > & operator=(const TableExaminer< T > &)=default
~TableExaminer() override
void columnTypesImpl(std::vector< std::type_index > &iV, std::true_type *) const
const std::complex< double > I
TableExaminer(T const *iTable)
double S(const TLorentzVector &, const TLorentzVector &)
std::vector< std::type_index > columnTypes() const override final
void columnDescImpl(std::vector< std::pair< char const *, std::type_index >> &iV, std::true_type *) const
const std::type_info * typeID() const override final
void columnTypesImpl(std::vector< std::type_index > &, std::false_type *) const
static const unsigned int kNColumns