1 #ifndef FWCore_SOA_TableItr_h 2 #define FWCore_SOA_TableItr_h 24 #include <type_traits> 35 template<
int I,
typename... Args>
41 auto p =
static_cast<Type*
>( iArray[
I]);
46 template<
typename... Args>
51 auto p =
static_cast<Type*
>( iArray[0]);
56 template<
int I,
typename... Args>
62 auto p =
static_cast<Type const*
>( iArray[
I]);
67 template<
typename... Args>
72 auto p =
static_cast<Type const*
>( iArray[0]);
79 template <
typename... Args>
109 return m_values[0] == iOther.
m_values[0];
113 return m_values[0] != iOther.
m_values[0];
117 return TableItr<Args...>{ m_values, iDiff };
121 template <
typename... Args>
126 template <
typename... Args>
156 return m_values[0] == iOther.
m_values[0];
160 return m_values[0] != iOther.
m_values[0];
164 return TableItr<Args...>{ m_values, iDiff };
168 template <
typename... Args>
std::tuple< Args... > Layout
bool operator==(const TableItr< Args... > &iOther)
std::tuple< Args... > Layout
std::tuple< Args... > Layout
std::tuple< Args... > Layout
ConstTableItr & operator++()
static void advance(std::array< void const *, sizeof...(Args)> &iArray, long iStep)
TableItr< Args... > operator+(TableItr< Args... > const &iLHS, long iDiff)
TableItr(std::array< void *, sizeof...(Args)> const &iValues, long iOffset)
static void advance(std::array< void *, sizeof...(Args)> &iArray, long iStep)
TableItr< Args... > makeOffset(long iDiff) const
TableItr(std::array< void *, sizeof...(Args)> const &iValues)
value_type operator*() const
TableItr(std::array< void *, sizeof...(Args)> const &iValues, unsigned int iOffset)
ConstTableItr(std::array< void const *, sizeof...(Args)> const &iValues, long iOffset)
const std::complex< double > I
std::array< void *, sizeof...(Args)> m_values
static void advance(std::array< void *, sizeof...(Args)> &iArray, long iStep)
bool operator!=(const ConstTableItr< Args... > &iOther)
bool operator==(const ConstTableItr< Args... > &iOther)
std::array< void const *, sizeof...(Args)> m_values
bool operator!=(const TableItr< Args... > &iOther)
ConstTableItr(std::array< void const *, sizeof...(Args)> const &iValues, unsigned int iOffset)
std::tuple< Args... > Layout
TableItr< Args... > makeOffset(long iDiff) const
ConstTableItr(std::array< void const *, sizeof...(Args)> const &iValues)
static void advance(std::array< void const *, sizeof...(Args)> &iArray, long iStep)
std::tuple< Args... > Layout