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]);
42 iArray[
I] =
p + iStep;
46 template <
typename... Args>
51 auto p =
static_cast<Type*
>(iArray[0]);
52 iArray[0] =
p + iStep;
56 template <
int I,
typename... Args>
62 auto p =
static_cast<Type const*
>(iArray[
I]);
63 iArray[
I] =
p + iStep;
67 template <
typename... Args>
72 auto p =
static_cast<Type const*
>(iArray[0]);
73 iArray[0] =
p + iStep;
78 template <
typename... Args>
88 explicit TableItr(
std::array<
void*,
sizeof...(Args)>
const& iValues,
long iOffset) : m_values{iValues} {
92 explicit TableItr(
std::array<
void*,
sizeof...(Args)>
const& iValues,
unsigned int iOffset) : m_values{iValues} {
110 template <
typename... Args>
115 template <
typename... Args>
147 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