1 #ifndef FWCore_SOA_TableView_h 2 #define FWCore_SOA_TableView_h 48 template <
typename... Args>
56 template <
typename... OArgs>
59 fillArray<0>(iTable,std::true_type{});
69 unsigned int size()
const {
74 typename U::type const&
get(
size_t iRow)
const {
75 return static_cast<typename
U::type*
>(columnAddress<U>())+iRow;
95 template <
int I,
typename T>
98 m_values[
I] = iTable.columnAddressWorkaround(static_cast<ElementType const*>(
nullptr));
99 fillArray<I+1>(iTable, std::conditional_t<
I+1<
sizeof...(Args), std::true_type, std::false_type>{});
101 template <
int I,
typename T>
unsigned int size() const
static constexpr const size_t kNColumns
std::tuple< Args... > Layout
TableView(unsigned int iSize, std::array< void *, sizeof...(Args)> &iArray)
std::array< void const *, sizeof...(Args)> m_values
void fillArray(T const &iTable, std::true_type)
void fillArray(T const &iTable, std::false_type)
ColumnValues< typename U::type > column() const
const std::complex< double > I
void const * columnAddress() const
const_iterator end() const
TableView(unsigned int iSize, std::array< void const *, sizeof...(Args)> &iArray)
const_iterator begin() const
TableView(Table< OArgs... > const &iTable)