1 #ifndef FWCore_SOA_RowView_h 2 #define FWCore_SOA_RowView_h 56 template <
typename... Args>
67 return *(
static_cast<typename
U::type const*
>(columnAddress<U>()));
77 template <
typename... Args>
88 return *(
static_cast<typename
U::type*
>(columnAddress<U>()));
92 return *(
static_cast<typename
U::type const*
>(columnAddress<U>()));
113 copyValueFromImpl<0>(iObj, std::true_type{});
115 template<
typename O,
typename... CArgs>
117 copyValuesUsingFiller<0>(iFiller, iObj,
m_values, std::true_type{});
121 template<
int I,
typename O>
126 *ptr =value_for_column(iObj, static_cast<ColumnType*>(
nullptr));
127 copyValueFromImpl<I+1>(iObj, std::conditional_t<
I+1 ==
sizeof...(Args), std::false_type, std::true_type>{});
129 template<
int I,
typename O>
133 template<
int I,
typename E,
typename F>
135 using Layout = std::tuple<Args...>;
138 Type* pElement =
static_cast<Type*
>(oValues[
I]);
139 *pElement = iFiller.value(iItem, static_cast<ColumnType*>(
nullptr));
140 copyValuesUsingFiller<I+1>(iFiller,iItem, oValues, std::conditional_t<
I+1==
sizeof...(Args),
144 template<
int I,
typename E,
typename F>
void copyValueFromImpl(O const &iObj, std::false_type)
void copyValuesFrom(O const &iObj)
MutableRowView(std::array< void *, sizeof...(Args)> &iValues)
void const * columnAddress() const
void copyValuesFrom(O const &iObj, ColumnFillers< CArgs... > iFiller)
std::tuple< Args... > Layout
void const * columnAddress() const
static void copyValuesUsingFiller(F &, E const &, std::array< void *, sizeof...(Args)> &oValues, std::false_type)
const std::complex< double > I
std::array< void const *, sizeof...(Args)> m_values
RowView(std::array< void const *, sizeof...(Args)> const &iValues)
static void copyValuesUsingFiller(F &iFiller, E const &iItem, std::array< void *, sizeof...(Args)> &oValues, std::true_type)
std::tuple< Args... > Layout
void copyValueFromImpl(O const &iObj, std::true_type)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)