Skip to content

Commit 4fedb0c

Browse files
committed
split functions in place of if-constexpr
1 parent c25504d commit 4fedb0c

File tree

1 file changed

+22
-15
lines changed
  • Framework/Core/include/Framework

1 file changed

+22
-15
lines changed

Framework/Core/include/Framework/ASoA.h

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -139,27 +139,34 @@ consteval auto intersect()
139139

140140
template <typename T, typename... Ts>
141141
consteval auto mergeOriginals()
142-
requires(sizeof...(Ts) > 0)
142+
requires(sizeof...(Ts) == 1)
143143
{
144-
if constexpr (sizeof...(Ts) == 1) {
145-
using T1 = framework::pack_head_t<framework::pack<Ts...>>;
146-
return merge<T::originals.size(), T1::originals.size(), T::originals, T1::originals>();
147-
} else {
148-
constexpr auto tail = mergeOriginals<Ts...>();
149-
return merge<T::originals.size(), tail.size(), T::originals, tail>();
150-
}
144+
using T1 = framework::pack_head_t<framework::pack<Ts...>>;
145+
return merge<T::originals.size(), T1::originals.size(), T::originals, T1::originals>();
146+
}
147+
148+
template <typename T, typename... Ts>
149+
consteval auto mergeOriginals()
150+
requires(sizeof...(Ts) > 1)
151+
{
152+
constexpr auto tail = mergeOriginals<Ts...>();
153+
return merge<T::originals.size(), tail.size(), T::originals, tail>();
151154
}
152155

153156
template <typename T, typename... Ts>
157+
requires (sizeof...(Ts) == 1)
154158
consteval auto intersectOriginals()
155159
{
156-
if constexpr (sizeof...(Ts) == 1) {
157-
using T1 = framework::pack_head_t<framework::pack<Ts...>>;
158-
return intersect<T::originals.size(), T1::originals.size(), T::originals, T1::originals>();
159-
} else {
160-
constexpr auto tail = intersectOriginals<Ts...>();
161-
return intersect<T::originals.size(), tail.size(), T::originals, tail>();
162-
}
160+
using T1 = framework::pack_head_t<framework::pack<Ts...>>;
161+
return intersect<T::originals.size(), T1::originals.size(), T::originals, T1::originals>();
162+
}
163+
164+
template <typename T, typename... Ts>
165+
requires (sizeof...(Ts) > 1)
166+
consteval auto intersectOriginals()
167+
{
168+
constexpr auto tail = intersectOriginals<Ts...>();
169+
return intersect<T::originals.size(), tail.size(), T::originals, tail>();
163170
}
164171
} // namespace o2::soa
165172

0 commit comments

Comments
 (0)