@@ -18,6 +18,14 @@ TEST(TypeTraitsTest, value_type) {
1818 static_assert (std::same_as<range_value_t <any_view<const value>>, value>);
1919}
2020
21+ struct value_traits {
22+ using reference_type = value;
23+ };
24+
25+ struct lvalue_traits {
26+ using reference_type = lvalue;
27+ };
28+
2129TEST (TypeTraitsTest, reference_type) {
2230 using std::ranges::range_reference_t ;
2331
@@ -30,14 +38,6 @@ TEST(TypeTraitsTest, reference_type) {
3038 static_assert (std::same_as<range_reference_t <any_view<value, input, value>>, value>);
3139 static_assert (std::same_as<range_reference_t <any_view<value, input, lvalue>>, lvalue>);
3240#elif BEMAN_ANY_VIEW_USE_TRAITS()
33- struct value_traits {
34- using reference_type = value;
35- };
36-
37- struct lvalue_traits {
38- using reference_type = lvalue;
39- };
40-
4141 static_assert (std::same_as<range_reference_t <any_view<value, value_traits>>, value>);
4242 static_assert (std::same_as<range_reference_t <any_view<value, lvalue_traits>>, lvalue>);
4343#elif BEMAN_ANY_VIEW_USE_NAMED()
@@ -48,6 +48,10 @@ TEST(TypeTraitsTest, reference_type) {
4848#endif
4949}
5050
51+ struct rvalue_traits {
52+ using rvalue_reference_type = rvalue;
53+ };
54+
5155TEST (TypeTraitsTest, rvalue_reference_type) {
5256 using std::ranges::range_rvalue_reference_t ;
5357
@@ -61,18 +65,6 @@ TEST(TypeTraitsTest, rvalue_reference_type) {
6165 static_assert (std::same_as<range_rvalue_reference_t <any_view<value, input, lvalue>>, lvalue>);
6266 static_assert (std::same_as<range_rvalue_reference_t <any_view<value, input, lvalue, rvalue>>, rvalue>);
6367#elif BEMAN_ANY_VIEW_USE_TRAITS()
64- struct value_traits {
65- using reference_type = value;
66- };
67-
68- struct lvalue_traits {
69- using reference_type = lvalue;
70- };
71-
72- struct rvalue_traits {
73- using rvalue_reference_type = rvalue;
74- };
75-
7668 static_assert (std::same_as<range_rvalue_reference_t <any_view<value, value_traits>>, value>);
7769 static_assert (std::same_as<range_rvalue_reference_t <any_view<value, lvalue_traits>>, lvalue>);
7870 static_assert (std::same_as<range_rvalue_reference_t <any_view<value, rvalue_traits>>, rvalue>);
@@ -88,6 +80,10 @@ TEST(TypeTraitsTest, rvalue_reference_type) {
8880#endif
8981}
9082
83+ struct difference_traits {
84+ using difference_type = short ;
85+ };
86+
9187TEST (TypeTraitsTest, difference_type) {
9288 using std::ranges::range_difference_t ;
9389
@@ -98,10 +94,6 @@ TEST(TypeTraitsTest, difference_type) {
9894
9995 static_assert (std::same_as<range_difference_t <any_view<value, input, lvalue, rvalue, short >>, short >);
10096#elif BEMAN_ANY_VIEW_USE_TRAITS()
101- struct difference_traits {
102- using difference_type = short ;
103- };
104-
10597 static_assert (std::same_as<range_difference_t <any_view<value, difference_traits>>, short >);
10698#elif BEMAN_ANY_VIEW_USE_NAMED()
10799 using beman::any_view::type;
@@ -117,6 +109,10 @@ struct sized_traits {
117109 static constexpr bool sized = true ;
118110};
119111
112+ struct sized_difference_traits : sized_traits {
113+ using difference_type = short ;
114+ };
115+
120116TEST (TypeTraitsTest, size_type) {
121117 using std::ranges::range_size_t ;
122118
@@ -126,12 +122,8 @@ TEST(TypeTraitsTest, size_type) {
126122 static_assert (std::same_as<range_size_t <any_view<value, input | sized>>, std::size_t >);
127123 static_assert (std::same_as<range_size_t <any_view<value, input | sized, lvalue, rvalue, short >>, unsigned short >);
128124#elif BEMAN_ANY_VIEW_USE_TRAITS()
129- struct difference_traits : sized_traits {
130- using difference_type = short ;
131- };
132-
133125 static_assert (std::same_as<range_size_t <any_view<value, sized_traits>>, std::size_t >);
134- static_assert (std::same_as<range_size_t <any_view<value, difference_traits >>, unsigned short >);
126+ static_assert (std::same_as<range_size_t <any_view<value, sized_difference_traits >>, unsigned short >);
135127#elif BEMAN_ANY_VIEW_USE_NAMED()
136128 using beman::any_view::type;
137129
0 commit comments