@@ -152,7 +152,7 @@ template <typename C>
152152static constexpr bool is_persistent_v = is_persistent_column<C>;
153153
154154template <typename C>
155- concept is_index_column = requires { typename C::binding_t {nullptr }; };
155+ concept is_index_column = not_void< typename C:: binding_t >; // requires { typename C::binding_t{nullptr}; };
156156
157157template <typename C>
158158using is_external_index_t = typename std::conditional_t <is_index_column<C>, std::true_type, std::false_type>;
@@ -205,51 +205,15 @@ inline constexpr bool is_type_with_originals_v = false;
205205template <typename T>
206206inline constexpr bool is_type_with_originals_v<T, std::void_t <decltype (sizeof (typename T::originals))>> = true ;
207207
208- template <typename T, typename = void >
209- inline constexpr bool is_type_with_parent_v = false ;
210-
211208template <typename T>
212- inline constexpr bool is_type_with_parent_v<T, std:: void_t < decltype ( sizeof ( typename T::parent_t ))>> = true ;
209+ concept has_parent_t = not_void< typename T::parent_t > ;
213210
214211template <typename T>
215212concept has_metadata = soa::not_void<typename aod::MetadataTrait<T>::metadata>;
216213
217- template <typename T>
218- inline constexpr bool is_type_with_metadata_v = has_metadata<T>;
219-
220- template <typename , typename = void >
221- inline constexpr bool is_type_spawnable_v = false ;
222-
223- template <typename T>
224- inline constexpr bool is_type_spawnable_v<T, std::void_t <decltype (sizeof (typename T::spawnable_t ))>> = true ;
225-
226- template <typename , typename = void >
227- inline constexpr bool is_soa_extension_table_v = false ;
228-
229- template <typename T>
230- inline constexpr bool is_soa_extension_table_v<T, std::void_t <decltype (sizeof (typename T::expression_pack_t ))>> = true ;
231-
232- template <typename T, typename = void >
233- inline constexpr bool is_index_table_v = false ;
234-
235- template <typename T>
236- inline constexpr bool is_index_table_v<T, std::void_t <decltype (sizeof (typename T::indexing_t ))>> = true ;
237-
238- template <typename , typename = void >
239- inline constexpr bool is_self_index_column_v = false ;
240-
241- template <typename T>
242- inline constexpr bool is_self_index_column_v<T, std::void_t <decltype (sizeof (typename T::self_index_t ))>> = true ;
243-
244214template <typename T>
245215concept is_spawnable_column = std::is_same_v<typename T::spawnable_t , std::true_type>;
246216
247- template <typename , typename = void >
248- inline constexpr bool is_with_base_table_v = false ;
249-
250- template <typename T>
251- inline constexpr bool is_with_base_table_v<T, std::void_t <decltype (sizeof (typename T::base_table_t ))>> = true ;
252-
253217template <typename B, typename E>
254218struct EquivalentIndex {
255219 constexpr static bool value = false ;
@@ -283,7 +247,7 @@ consteval decltype(auto) make_originals_from_type()
283247 return typename decayed::originals{};
284248 } else if constexpr (is_type_with_originals_v<typename decayed::table_t >) {
285249 return typename decayed::table_t ::originals{};
286- } else if constexpr (is_type_with_parent_v <decayed>) {
250+ } else if constexpr (soa:: has_parent_t <decayed>) {
287251 return make_originals_from_type<typename decayed::parent_t >();
288252 } else {
289253 return framework::pack<decayed>{};
@@ -1730,8 +1694,8 @@ class Table
17301694 inline arrow::ChunkedArray* getIndexToKey ()
17311695 {
17321696 if constexpr (framework::has_type_conditional<is_binding_compatible, Key>(external_index_columns_t {})) {
1733- using IC = framework::pack_element_t <framework::has_type_at_conditional <is_binding_compatible, Key>(external_index_columns_t {}), external_index_columns_t >;
1734- return mColumnChunks [framework::has_type_at <IC>(persistent_columns_t {})];
1697+ using IC = framework::pack_element_t <framework::has_type_at_conditional_v <is_binding_compatible, Key>(external_index_columns_t {}), external_index_columns_t >;
1698+ return mColumnChunks [framework::has_type_at_v <IC>(persistent_columns_t {})];
17351699 } else if constexpr (std::is_same_v<table_t , Key>) {
17361700 return nullptr ;
17371701 } else {
@@ -2027,7 +1991,7 @@ DECLARE_SOA_ITERATOR_METADATA();
20271991 template <typename T> \
20281992 consteval int getVersion () \
20291993 { \
2030- if constexpr (o2::soa::is_type_with_metadata_v <MetadataTrait<T>>) { \
1994+ if constexpr (o2::soa::has_metadata <MetadataTrait<T>>) { \
20311995 return MetadataTrait<T>::metadata::version (); \
20321996 } else if constexpr (o2::soa::is_type_with_originals_v<T>) { \
20331997 return MetadataTrait<o2::framework::pack_head_t <typename T::originals>>::metadata::version (); \
0 commit comments