@@ -1230,29 +1230,34 @@ template <typename T>
12301230concept is_iterator = framework::base_of_template<TableIterator, T> || framework::specialization_of_template<TableIterator, T>;
12311231
12321232template <typename T>
1233- concept with_originals = requires () {
1233+ concept with_originals = requires {
12341234 T::originals.size ();
12351235};
12361236
12371237template <typename T>
1238- concept with_sources = requires () {
1238+ concept with_sources = requires {
12391239 T::sources.size ();
12401240};
12411241
12421242template <typename T>
12431243concept with_base_table = not_void<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t >;
12441244
1245+ template <size_t N1, std::array<TableRef, N1> os1, size_t N2, std::array<TableRef, N2> os2>
1246+ consteval bool is_compatible ()
1247+ {
1248+ return []<size_t ... Is>(std::index_sequence<Is...>){
1249+ return ([]<size_t ... Ks>(std::index_sequence<Ks...>){
1250+ constexpr auto h = os1[Is].desc_hash ;
1251+ using H = o2::aod::Hash<h>;
1252+ return (((h == os2[Ks].desc_hash ) || is_ng_index_equivalent_v<H, o2::aod::Hash<os2[Ks].desc_hash >>) || ...);
1253+ }(std::make_index_sequence<N2>()) || ...);
1254+ }(std::make_index_sequence<N1>());
1255+ }
1256+
12451257template <with_originals T, with_originals B>
12461258consteval bool is_binding_compatible_v ()
12471259{
1248- return []<size_t ... Is>(std::index_sequence<Is...>) {
1249- return ([]<size_t ... Ks>(std::index_sequence<Ks...>) {
1250- constexpr auto thash = T::originals[Is].desc_hash ;
1251- using tHash = o2::aod::Hash<T::originals[Is].desc_hash >;
1252- return (((thash == B::originals[Ks].desc_hash ) || is_ng_index_equivalent_v<tHash, o2::aod::Hash<B::originals[Ks].desc_hash >>) || ...);
1253- }(std::make_index_sequence<B::originals.size ()>()) ||
1254- ...);
1255- }(std::make_index_sequence<T::originals.size ()>());
1260+ return is_compatible<T::originals.size (), T::originals, B::originals.size (), B::originals>();
12561261}
12571262
12581263template <typename T, typename B>
0 commit comments