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>
void fillArray(T const &iTable, std::index_sequence< I...>)
unsigned int size() const
static constexpr const size_t kNColumns
typename ViewFromTable< T >::type ViewFromTable_t
std::tuple< Args...> Layout
TableView(Table< OArgs...> const &iTable)
TableView(unsigned int iSize, std::array< void *, sizeof...(Args)> &iArray)
std::array< void const *, sizeof...(Args)> m_values
ColumnValues< typename U::type > column() const
const std::complex< double > I
void const * columnAddress() const
const_iterator end() const
const_iterator begin() const