27 has_iterator_traits_iterator_concept_v<remove_cvref_t<T>>
34 struct iter_concept<
T,
37 !has_iterator_traits_iterator_concept_v<remove_cvref_t<T>> &&
38 has_iterator_traits_iterator_category_v<remove_cvref_t<T>>
41 using type =
typename std::iterator_traits<remove_cvref_t<T>>::iterator_category;
45 struct iter_concept<
T,
48 !has_iterator_traits_iterator_concept_v<remove_cvref_t<T>> &&
49 !has_iterator_traits_iterator_category_v<remove_cvref_t<T>>
52 using type = std::random_access_iterator_tag;
Definition Partitioner.hpp:146
typename iter_concept< T >::type iter_concept_t
A C++17 type trait equivalent to the C++20 iter_concept concept.
Definition iter_concept.hpp:56
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
A C++17 type trait equivalent to the C++20 iter_concept concept.
Definition iter_concept.hpp:21