1 #ifndef FWCore_SOA_RowView_h
2 #define FWCore_SOA_RowView_h
56 template <
typename... Args>
66 return *(
static_cast<typename
U::type const*
>(columnAddress<U>()));
75 template <
typename... Args>
85 return *(
static_cast<typename
U::type*
>(columnAddress<U>()));
89 return *(
static_cast<typename
U::type const*
>(columnAddress<U>()));
102 template <
typename U>
107 template <
typename O>
109 copyValueFromImpl<0>(iObj);
111 template <
typename O,
typename... CArgs>
113 copyValuesUsingFiller<0>(iFiller, iObj,
m_values);
117 template <
int I,
typename O>
119 if constexpr (
I <
sizeof...(Args)) {
124 copyValueFromImpl<I + 1>(iObj);
128 template <
int I,
typename E,
typename F>
130 if constexpr (
I <
sizeof...(Args)) {
131 using Layout = std::tuple<Args...>;
134 Type* pElement =
static_cast<Type*
>(oValues[
I]);
135 *pElement = iFiller.value(iItem, static_cast<ColumnType*>(
nullptr));
136 copyValuesUsingFiller<I + 1>(iFiller, iItem, oValues);
void copyValuesFrom(O const &iObj, ColumnFillers< CArgs...> iFiller)
MutableRowView< Args...> & set(typename U::type const &iValue)
void copyValuesFrom(O const &iObj)
MutableRowView(std::array< void *, sizeof...(Args)> &iValues)
std::array< void *, sizeof...(Args)> m_values
void const * columnAddress() const
std::tuple< Args...> Layout
void const * columnAddress() const
const std::complex< double > I
std::array< void const *, sizeof...(Args)> m_values
RowView(std::array< void const *, sizeof...(Args)> const &iValues)
std::tuple< Args...> Layout
col::Eta::type value_for_column(Object const &x, col::Eta *)
void copyValueFromImpl(O const &iObj)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
static void copyValuesUsingFiller(F &iFiller, E const &iItem, std::array< void *, sizeof...(Args)> &oValues)