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)) {
122 auto ptr = static_cast<Type*>(
m_values[
I]);
123 *ptr = value_for_column(iObj, static_cast<ColumnType*>(
nullptr));
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);