Skip to content

Commit afbdc21

Browse files
committed
do not use all_columns pack where the template arguments are available
1 parent 30654a8 commit afbdc21

File tree

1 file changed

+11
-33
lines changed
  • Framework/Core/include/Framework

1 file changed

+11
-33
lines changed

Framework/Core/include/Framework/ASoA.h

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,15 +1058,15 @@ struct TableIterator : IP, C... {
10581058

10591059
TableIterator(arrow::ChunkedArray* columnData[sizeof...(C)], IP&& policy)
10601060
: IP{policy},
1061-
C(columnData[framework::has_type_at_v<C>(all_columns{})])...
1061+
C(columnData[framework::has_type_at_v<C>(framework::pack<C...>{})])...
10621062
{
10631063
bind();
10641064
}
10651065

10661066
TableIterator(arrow::ChunkedArray* columnData[sizeof...(C)], IP&& policy)
10671067
requires(has_index<C...>)
10681068
: IP{policy},
1069-
C(columnData[framework::has_type_at_v<C>(all_columns{})])...
1069+
C(columnData[framework::has_type_at_v<C>(framework::pack<C...>{})])...
10701070
{
10711071
bind();
10721072
// In case we have an index column might need to constrain the actual
@@ -1144,60 +1144,38 @@ struct TableIterator : IP, C... {
11441144
return *this;
11451145
}
11461146

1147-
template <typename... CL, typename TA>
1148-
void doSetCurrentIndex(framework::pack<CL...>, TA* current)
1149-
{
1150-
(doSetCurrentIndexImpl<CL>(current), ...);
1151-
}
1152-
11531147
template <typename CL>
11541148
auto getCurrent() const
11551149
{
11561150
return CL::getCurrentRaw();
11571151
}
11581152

1159-
template <typename... Cs>
1160-
auto getIndexBindingsImpl(framework::pack<Cs...>) const
1153+
auto getIndexBindings() const
11611154
{
11621155
std::vector<o2::soa::Binding> result;
1163-
(doGetIndexBindingImpl<Cs>(result), ...);
1156+
(doGetIndexBindingImpl<C>(result), ...);
11641157
return result;
11651158
}
11661159

1167-
auto getIndexBindings() const
1168-
{
1169-
return getIndexBindingsImpl(all_columns{});
1170-
}
1171-
11721160
template <typename... TA>
11731161
void bindExternalIndices(TA*... current)
11741162
{
1175-
(doSetCurrentIndex(all_columns{}, current), ...);
1176-
}
1177-
1178-
template <typename... Cs>
1179-
void doSetCurrentIndexRaw(framework::pack<Cs...> p, std::vector<o2::soa::Binding>&& bindings)
1180-
{
1181-
(doSetCurrentIndexRawImpl<Cs>(bindings[framework::has_type_at_v<Cs>(p)]), ...);
1182-
}
1183-
1184-
template <typename... Cs, typename I>
1185-
void doSetCurrentInternal(framework::pack<Cs...>, I const* ptr)
1186-
{
1187-
o2::soa::Binding b;
1188-
b.bind(ptr);
1189-
(doSetCurrentInternalImpl<Cs>(b), ...);
1163+
([this]<typename... Cs, typename TT>(framework::pack<Cs...>, TT* t){
1164+
(doSetCurrentIndexImpl<Cs>(t), ...);
1165+
}(framework::pack<C...>{}, current), ...);
11901166
}
11911167

11921168
void bindExternalIndicesRaw(std::vector<o2::soa::Binding>&& bindings)
11931169
{
1194-
doSetCurrentIndexRaw(all_columns{}, std::forward<std::vector<o2::soa::Binding>>(bindings));
1170+
(doSetCurrentIndexRawImpl<C>(bindings[framework::has_type_at_v<C>(framework::pack<C...>{})]), ...);
11951171
}
11961172

11971173
template <typename I>
11981174
void bindInternalIndices(I const* table)
11991175
{
1200-
doSetCurrentInternal(all_columns{}, table);
1176+
o2::soa::Binding b;
1177+
b.bind(table);
1178+
(doSetCurrentInternalImpl<C>(b), ...);
12011179
}
12021180

12031181
private:

0 commit comments

Comments
 (0)