5#include <unordered_set>
15template<auto C,
typename T>
17 C.template operator()<T>();
20template<
typename R,
typename T>
21concept range_of = std::ranges::range<R> && std::convertible_to<std::ranges::range_value_t<R>,T>;
23template<
typename R, auto C>
26template<
typename R,
typename T>
29template<
typename R, auto C>
32template<
typename R,
typename T>
35template<
typename R,auto C>
38template<
typename R,
typename T>
41template<
typename R, auto C>
44template<
typename V,
typename T>
47template<
typename V, auto C>
50constexpr size_t size(std::ranges::range
auto && range)
noexcept{
51 using R = std::remove_cvref_t<
decltype(range)>;
52 if constexpr(std::ranges::sized_range<R>){
53 return static_cast<size_t>(std::ranges::size(range));
55 return static_cast<size_t>(std::ranges::distance(range));
59constexpr inline bool isEmpty(std::ranges::range
auto && range)
noexcept {
60 return size(range) == 0;
63template<std::ranges::range R>
65 std::vector<std::ranges::range_value_t<R>> vec;
66 for (
auto&& elem : range) {
67 vec.push_back(std::forward<
decltype(elem)>(elem));
72template<std::ranges::range R>
74 std::unordered_set<std::ranges::range_value_t<R>> set;
75 for (
auto&& elem : range) {
76 set.insert(std::forward<
decltype(elem)>(elem));
Metaprogramming Helper which checks whether a concept is satisfied (Futher information can found here...
Definition CollectionConcepts.hpp:16
Definition CollectionConcepts.hpp:27
Definition CollectionConcepts.hpp:30
Definition CollectionConcepts.hpp:39
Definition CollectionConcepts.hpp:42
Definition CollectionConcepts.hpp:21
Definition CollectionConcepts.hpp:24
Definition CollectionConcepts.hpp:45
Definition CollectionConcepts.hpp:48
Definition AlternativeKeyMap.hpp:4
constexpr auto toUnorderedSet(R &&range)
Definition CollectionConcepts.hpp:73
constexpr size_t size(std::ranges::range auto &&range) noexcept
Definition CollectionConcepts.hpp:50
constexpr auto toVector(R &&range)
Definition CollectionConcepts.hpp:64
constexpr bool isEmpty(std::ranges::range auto &&range) noexcept
Definition CollectionConcepts.hpp:59