feat: type_list_unique added

This commit is contained in:
Mateusz Pusz committed 2024-09-26 13:05:01 +02:00
1 parent a27089cb9c
commit 922907890f
2 files changed
+34

No files matched your search

@@ -235,6 +235,28 @@ struct type_list_sort_impl<List<Types...>, Pred> {
template<TypeList List, template<typename, typename> typename Pred>
using type_list_sort = type_list_sort_impl<List, Pred>::type;
// sort
template<typename List>
struct type_list_unique_impl;
template<template<typename...> typename List>
struct type_list_unique_impl<List<>> {
using type = List<>;
};
template<template<typename...> typename List, typename T, typename... Rest>
struct type_list_unique_impl<List<T, Rest...>> {
using type = type_list_push_front<typename type_list_unique_impl<List<Rest...>>::type, T>;
};
template<template<typename...> typename List, typename T, typename... Rest>
struct type_list_unique_impl<List<T, T, Rest...>> {
using type = type_list_unique_impl<List<T, Rest...>>::type;
};
template<TypeList List>
using type_list_unique = type_list_unique_impl<List>::type;
} // namespace mp_units::detail
MP_UNITS_DIAGNOSTIC_POP