Skip to content

Commit 2414636

Browse files
committed
fixup! fix for produces
1 parent c42f0c1 commit 2414636

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

Framework/Core/include/Framework/AnalysisHelpers.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ class TableConsumer;
119119
template <typename T>
120120
concept is_producable = soa::has_metadata<aod::MetadataTrait<T>> || soa::has_metadata<aod::MetadataTrait<typename T::parent_t>>;
121121

122+
template <typename T>
123+
concept is_enumerated_iterator = requires (T t) { t.globalIndex(); };
124+
122125
template <is_producable T>
123126
struct WritingCursor {
124127
public:
@@ -127,8 +130,8 @@ struct WritingCursor {
127130

128131
template <typename... Ts>
129132
void operator()(Ts&&... args)
133+
requires(sizeof...(Ts) == framework::pack_size(typename persistent_table_t::persistent_columns_t{}))
130134
{
131-
static_assert(sizeof...(Ts) == framework::pack_size(typename persistent_table_t::persistent_columns_t{}), "Argument number mismatch");
132135
++mCount;
133136
cursor(0, extract(args)...);
134137
}
@@ -167,14 +170,14 @@ struct WritingCursor {
167170
decltype(FFL(std::declval<cursor_t>())) cursor;
168171

169172
private:
170-
template <typename A>
171-
requires requires { &A::globalIndex; }
173+
template <is_enumerated_iterator A>
172174
static decltype(auto) extract(A const& arg)
173175
{
174176
return arg.globalIndex();
175177
}
176178

177179
template <typename A>
180+
requires(!is_enumerated_iterator<A>)
178181
static decltype(auto) extract(A&& arg)
179182
{
180183
return arg;

0 commit comments

Comments
 (0)