File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed
Framework/Core/include/Framework Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,9 @@ class TableConsumer;
119119template <typename T>
120120concept 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+
122125template <is_producable T>
123126struct 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;
You can’t perform that action at this time.
0 commit comments