Skip to content

Commit 260f878

Browse files
committed
compatibility
1 parent 036d8eb commit 260f878

File tree

1 file changed

+20
-10
lines changed
  • Framework/Core/include/Framework

1 file changed

+20
-10
lines changed

Framework/Core/include/Framework/ASoA.h

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,9 @@ concept not_void = requires { !std::same_as<T, void>; };
241241
template <typename C>
242242
concept persistent = requires(C c) { c.mColumnIterator; };
243243

244+
template <typename C>
245+
constexpr bool is_persistent_v = persistent<C>;
246+
244247
template <typename C>
245248
using is_persistent_t = std::conditional_t<persistent<C>, std::true_type, std::false_type>;
246249

@@ -1634,34 +1637,41 @@ using is_binding_compatible = std::conditional_t<is_binding_compatible_v<T, type
16341637
// }
16351638
// }
16361639
// }
1640+
template <typename L, typename D, typename O, typename Key, typename H, typename... Ts>
1641+
struct IndexTable;
1642+
1643+
template <typename T>
1644+
concept index_table = framework::is_specialization_v<T, o2::soa::IndexTable>;
16371645

16381646
template <soa::ng_table T>
1639-
static constexpr std::string getLabelFromType()
1647+
static constexpr std::string getLabelForTable()
16401648
{
16411649
return std::string{o2::aod::Hash<std::decay_t<T>::originals[0].label_hash>::str};
16421650
}
16431651

1644-
template <soa::ng_iterator T>
1652+
template <soa::ng_table T>
1653+
requires (!index_table<T>)
16451654
static constexpr std::string getLabelFromType()
16461655
{
1647-
return getLabelFromType<typename std::decay_t<T>::parent_t>();
1656+
return getLabelForTable<T>();
16481657
}
16491658

1650-
template <typename L, typename D, typename O, typename Key, typename H, typename... Ts>
1651-
struct IndexTable;
1652-
1653-
template <typename T>
1654-
concept index_table = framework::is_specialization_v<T, o2::soa::IndexTable>;
1659+
template <soa::ng_iterator T>
1660+
static constexpr std::string getLabelFromType()
1661+
{
1662+
return getLabelForTable<typename std::decay_t<T>::parent_t>();
1663+
}
16551664

16561665
template <index_table T>
16571666
static constexpr std::string getLabelFromType()
16581667
{
1659-
return getLabelFromType<typename std::decay_t<T>::first_t>();
1668+
return getLabelForTable<typename std::decay_t<T>::first_t>();
16601669
}
16611670
template <with_sources T>
1671+
requires (not_void<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>)
16621672
static constexpr std::string getLabelFromType()
16631673
{
1664-
return getLabelFromType<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>();
1674+
return getLabelForTable<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t>();
16651675
}
16661676

16671677
template <typename... C>

0 commit comments

Comments
 (0)