Skip to content

Commit 0d2761f

Browse files
committed
improve concepts
1 parent 4ee33f4 commit 0d2761f

File tree

1 file changed

+7
-5
lines changed
  • Framework/Core/include/Framework

1 file changed

+7
-5
lines changed

Framework/Core/include/Framework/ASoA.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -781,17 +781,19 @@ struct Index : o2::soa::IndexColumn<Index<START, END>> {
781781
std::tuple<uint64_t const*> rowOffsets;
782782
};
783783

784-
template <typename T>
785-
concept is_dynamic_column = framework::is_base_of_template_v<soa::DynamicColumn, T>;
784+
template <typename D>
785+
concept is_indexing_column = requires {
786+
[]<int64_t S, int64_t E>(o2::soa::Index<S, E>*){}(std::declval<D*>());
787+
};
786788

787789
template <typename T>
788-
using is_dynamic_t = std::conditional_t<is_dynamic_column<T>, std::true_type, std::false_type>;
790+
concept is_dynamic_column = framework::base_of_template<soa::DynamicColumn, T>;
789791

790792
template <typename T>
791-
concept is_indexing_column = framework::is_base_of_template_v<soa::IndexColumn, T>;
793+
using is_dynamic_t = std::conditional_t<is_dynamic_column<T>, std::true_type, std::false_type>;
792794

793795
template <typename T>
794-
concept is_column = framework::is_base_of_template_v<soa::Column, T> || is_dynamic_column<T> || is_indexing_column<T> || framework::is_base_of_template_v<soa::MarkerColumn, T>;
796+
concept is_column = framework::base_of_template<soa::Column, T> || is_dynamic_column<T> || is_indexing_column<T> || framework::base_of_template<soa::MarkerColumn, T>;
795797

796798
template <typename T>
797799
using is_indexing_t = std::conditional_t<is_indexing_column<T>, std::true_type, std::false_type>;

0 commit comments

Comments
 (0)