1 #ifndef FWCore_SOA_TableView_h 2 #define FWCore_SOA_TableView_h 48 template <
typename... Args>
52 static constexpr
const size_t kNColumns =
sizeof...(Args);
55 template <
typename... OArgs>
57 fillArray(iTable, std::make_index_sequence<
sizeof...(Args)>{});
67 typename U::type const&
get(
size_t iRow)
const {
68 return *(
static_cast<typename
U::type const*
>(columnAddress<U>()) + iRow);
88 template <
typename T,
size_t...
I>
89 void fillArray(
T const& iTable, std::index_sequence<I...>) {
90 ((
m_values[
I] = iTable.columnAddressWorkaround(
99 template <
typename...
T>
103 template <
typename T>
const_iterator end() const
static constexpr const size_t kNColumns
void fillArray(T const &iTable, std::index_sequence< I... >)
typename ViewFromTable< T >::type ViewFromTable_t
unsigned int size() const
std::tuple< Args... > Layout
TableView(unsigned int iSize, std::array< void *, sizeof...(Args)> &iArray)
void const * columnAddress() const
std::array< void const *, sizeof...(Args)> m_values
const_iterator begin() const
const std::complex< double > I
TableView(unsigned int iSize, std::array< void const *, sizeof...(Args)> &iArray)
ColumnValues< typename U::type > column() const
TableView(Table< OArgs... > const &iTable)