@@ -36,15 +36,22 @@ SPECIALIZE_TRAIT(make_unsigned); // expected-error {{cannot be specialize
36
36
SPECIALIZE_TRAIT (remove_all_extents); // expected-error {{cannot be specialized}}
37
37
SPECIALIZE_TRAIT (remove_const); // expected-error {{cannot be specialized}}
38
38
SPECIALIZE_TRAIT (remove_cv); // expected-error {{cannot be specialized}}
39
- SPECIALIZE_TRAIT (remove_cvref); // expected-error {{cannot be specialized}}
40
39
SPECIALIZE_TRAIT (remove_extent); // expected-error {{cannot be specialized}}
41
40
SPECIALIZE_TRAIT (remove_pointer); // expected-error {{cannot be specialized}}
42
41
SPECIALIZE_TRAIT (remove_reference); // expected-error {{cannot be specialized}}
43
42
SPECIALIZE_TRAIT (remove_volatile); // expected-error {{cannot be specialized}}
44
- SPECIALIZE_TRAIT (type_identity); // expected-error {{cannot be specialized}}
45
43
SPECIALIZE_TRAIT (underlying_type); // expected-error {{cannot be specialized}}
46
- SPECIALIZE_TRAIT (unwrap_reference); // expected-error {{cannot be specialized}}
47
- SPECIALIZE_TRAIT (unwrap_ref_decay); // expected-error {{cannot be specialized}}
44
+
45
+ # if TEST_STD_VER <= 17
46
+ SPECIALIZE_TRAIT (result_of); // expected-error {{cannot be specialized}}
47
+ # endif
48
+
49
+ # if TEST_STD_VER >= 20
50
+ SPECIALIZE_TRAIT (remove_cvref); // expected-error {{cannot be specialized}}
51
+ SPECIALIZE_TRAIT (type_identity); // expected-error {{cannot be specialized}}
52
+ SPECIALIZE_TRAIT (unwrap_reference); // expected-error {{cannot be specialized}}
53
+ SPECIALIZE_TRAIT (unwrap_ref_decay); // expected-error {{cannot be specialized}}
54
+ # endif
48
55
49
56
# undef SPECIALIZE_TRAIT
50
57
# define SPECIALIZE_UTT (Trait ) \
@@ -96,7 +103,6 @@ SPECIALIZE_UTT(is_move_assignable); // expected-error 2 {{cannot
96
103
SPECIALIZE_UTT (is_move_constructible); // expected-error 2 {{cannot be specialized}}
97
104
SPECIALIZE_BTT (is_nothrow_assignable); // expected-error 2 {{cannot be specialized}}
98
105
SPECIALIZE_UTT (is_nothrow_constructible); // expected-error 2 {{cannot be specialized}}
99
- SPECIALIZE_BTT (is_nothrow_convertible); // expected-error 2 {{cannot be specialized}}
100
106
SPECIALIZE_UTT (is_nothrow_copy_assignable); // expected-error 2 {{cannot be specialized}}
101
107
SPECIALIZE_UTT (is_nothrow_copy_constructible); // expected-error 2 {{cannot be specialized}}
102
108
SPECIALIZE_UTT (is_nothrow_default_constructible); // expected-error 2 {{cannot be specialized}}
@@ -130,7 +136,6 @@ SPECIALIZE_UTT(is_trivially_default_constructible); // expected-error 2 {{cannot
130
136
SPECIALIZE_UTT (is_trivially_destructible); // expected-error 2 {{cannot be specialized}}
131
137
SPECIALIZE_UTT (is_trivially_move_assignable); // expected-error 2 {{cannot be specialized}}
132
138
SPECIALIZE_UTT (is_trivially_move_constructible); // expected-error 2 {{cannot be specialized}}
133
- SPECIALIZE_UTT (is_unbounded_array); // expected-error 2 {{cannot be specialized}}
134
139
SPECIALIZE_UTT (is_union); // expected-error 2 {{cannot be specialized}}
135
140
SPECIALIZE_UTT (is_unsigned); // expected-error 2 {{cannot be specialized}}
136
141
SPECIALIZE_UTT (is_void); // expected-error 2 {{cannot be specialized}}
@@ -140,11 +145,12 @@ SPECIALIZE_UTT(rank); // expected-error 2 {{cannot
140
145
141
146
# if TEST_STD_VER <= 17
142
147
SPECIALIZE_UTT (is_literal_type); // expected-error 2 {{cannot be specialized}}
143
- SPECIALIZE_UTT (result_of); // expected-error 2 {{cannot be specialized}}
144
148
# endif
145
149
146
150
# if TEST_STD_VER >= 20
147
- SPECIALIZE_UTT (is_bounded_array); // expected-error 2 {{cannot be specialized}}
151
+ SPECIALIZE_UTT (is_bounded_array); // expected-error 2 {{cannot be specialized}}
152
+ SPECIALIZE_BTT (is_nothrow_convertible); // expected-error 2 {{cannot be specialized}}
153
+ SPECIALIZE_UTT (is_unbounded_array); // expected-error 2 {{cannot be specialized}}
148
154
# endif
149
155
150
156
# if TEST_STD_VER >= 23
@@ -171,6 +177,8 @@ struct std::conditional<true, S, S>; // expected-error {{cannot be specialized}}
171
177
template <>
172
178
struct std ::enable_if<true , S>; // expected-error {{cannot be specialized}}
173
179
180
+ #if TEST_STD_VER >= 20
174
181
template <>
175
182
struct std ::integral_constant<S, {}>; // expected-error {{cannot be specialized}}
176
183
#endif
184
+ #endif
0 commit comments