5
5
6
6
export module containers.associative_container;
7
7
8
- import containers.array;
9
- import containers.c_array;
10
8
import containers.forward_range;
11
9
import containers.is_container;
12
- import containers.string;
13
- import containers.vector;
14
10
15
- import bounded;
16
11
import std_module;
17
12
18
13
namespace containers {
@@ -29,37 +24,3 @@ export template<typename T>
29
24
concept associative_container = associative_range<T> and is_container<T>;
30
25
31
26
} // namespace containers
32
-
33
- namespace {
34
-
35
- using namespace bounded ::literal;
36
-
37
- template <typename ... Ts>
38
- constexpr auto all_qualifications_are_associative_helper = (... and containers::associative_range<Ts>);
39
-
40
- template <typename T>
41
- constexpr auto all_qualifications_are_associative = all_qualifications_are_associative_helper<T, T const , T &, T const &, T &&>;
42
-
43
- template <typename ... Ts>
44
- constexpr auto no_qualifications_are_associative_helper = (... and !containers::associative_range<Ts>);
45
-
46
- template <typename T>
47
- constexpr auto no_qualifications_are_associative = no_qualifications_are_associative_helper<T, T const , T &, T const &, T &&>;
48
-
49
- static_assert (no_qualifications_are_associative<int >);
50
- static_assert (no_qualifications_are_associative<int *>);
51
-
52
- static_assert (no_qualifications_are_associative<containers::c_array<int , 5 >>);
53
-
54
- static_assert (no_qualifications_are_associative<containers::array<int , 5_bi>>);
55
- static_assert (no_qualifications_are_associative<containers::array<int , 0_bi>>);
56
- static_assert (no_qualifications_are_associative<containers::vector<int >>);
57
- static_assert (no_qualifications_are_associative<containers::string>);
58
-
59
- static_assert (no_qualifications_are_associative<std::array<int , 5 >>);
60
- static_assert (no_qualifications_are_associative<std::array<int , 0 >>);
61
- static_assert (no_qualifications_are_associative<std::vector<int >>);
62
- static_assert (all_qualifications_are_associative<std::map<int , int >>);
63
- static_assert (all_qualifications_are_associative<std::unordered_map<int , int >>);
64
-
65
- } // namespace
0 commit comments