1 #ifndef FWCore_SOA_TableExaminer_h 2 #define FWCore_SOA_TableExaminer_h 46 size_t size() const override final {
return m_table->size(); }
48 void const*
columnAddress(
unsigned int iColumnIndex)
const override final {
49 return m_table->columnAddressByIndex(iColumnIndex);
52 std::vector<std::type_index>
columnTypes() const override final {
53 std::vector<std::type_index> returnValue;
55 columnTypesImpl<0, T::kNColumns>(returnValue);
59 std::vector<std::pair<char const*, std::type_index>>
61 std::vector<std::pair<char const*, std::type_index>> returnValue;
63 columnDescImpl<0, T::kNColumns>(returnValue);
67 const std::type_info*
typeID() const override final {
72 template <
int I,
int S>
75 using Layout =
typename T::Layout;
77 columnTypesImpl<I+1, S>(iV);
81 template <
int I,
int S>
82 void columnDescImpl(std::vector<std::pair<char const*, std::type_index>>& iV)
const {
84 using Layout =
typename T::Layout;
87 columnDescImpl<I+1, S>(iV);
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
void columnTypesImpl(std::vector< std::type_index > &iV) const
~TableExaminer() override
void columnDescImpl(std::vector< std::pair< char const *, std::type_index >> &iV) const
const std::complex< double > I
TableExaminer(T const *iTable)
std::vector< std::type_index > columnTypes() const override final
const std::type_info * typeID() const override final
static const unsigned int kNColumns