@@ -36,15 +36,22 @@ SPECIALIZE_TRAIT(make_unsigned); // expected-error {{cannot be specialize
3636SPECIALIZE_TRAIT (remove_all_extents); // expected-error {{cannot be specialized}}
3737SPECIALIZE_TRAIT (remove_const); // expected-error {{cannot be specialized}}
3838SPECIALIZE_TRAIT (remove_cv); // expected-error {{cannot be specialized}}
39- SPECIALIZE_TRAIT (remove_cvref); // expected-error {{cannot be specialized}}
4039SPECIALIZE_TRAIT (remove_extent); // expected-error {{cannot be specialized}}
4140SPECIALIZE_TRAIT (remove_pointer); // expected-error {{cannot be specialized}}
4241SPECIALIZE_TRAIT (remove_reference); // expected-error {{cannot be specialized}}
4342SPECIALIZE_TRAIT (remove_volatile); // expected-error {{cannot be specialized}}
44- SPECIALIZE_TRAIT (type_identity); // expected-error {{cannot be specialized}}
4543SPECIALIZE_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
4855
4956# undef SPECIALIZE_TRAIT
5057# define SPECIALIZE_UTT (Trait ) \
@@ -96,7 +103,6 @@ SPECIALIZE_UTT(is_move_assignable); // expected-error 2 {{cannot
96103SPECIALIZE_UTT (is_move_constructible); // expected-error 2 {{cannot be specialized}}
97104SPECIALIZE_BTT (is_nothrow_assignable); // expected-error 2 {{cannot be specialized}}
98105SPECIALIZE_UTT (is_nothrow_constructible); // expected-error 2 {{cannot be specialized}}
99- SPECIALIZE_BTT (is_nothrow_convertible); // expected-error 2 {{cannot be specialized}}
100106SPECIALIZE_UTT (is_nothrow_copy_assignable); // expected-error 2 {{cannot be specialized}}
101107SPECIALIZE_UTT (is_nothrow_copy_constructible); // expected-error 2 {{cannot be specialized}}
102108SPECIALIZE_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
130136SPECIALIZE_UTT (is_trivially_destructible); // expected-error 2 {{cannot be specialized}}
131137SPECIALIZE_UTT (is_trivially_move_assignable); // expected-error 2 {{cannot be specialized}}
132138SPECIALIZE_UTT (is_trivially_move_constructible); // expected-error 2 {{cannot be specialized}}
133- SPECIALIZE_UTT (is_unbounded_array); // expected-error 2 {{cannot be specialized}}
134139SPECIALIZE_UTT (is_union); // expected-error 2 {{cannot be specialized}}
135140SPECIALIZE_UTT (is_unsigned); // expected-error 2 {{cannot be specialized}}
136141SPECIALIZE_UTT (is_void); // expected-error 2 {{cannot be specialized}}
@@ -140,11 +145,12 @@ SPECIALIZE_UTT(rank); // expected-error 2 {{cannot
140145
141146# if TEST_STD_VER <= 17
142147SPECIALIZE_UTT (is_literal_type); // expected-error 2 {{cannot be specialized}}
143- SPECIALIZE_UTT (result_of); // expected-error 2 {{cannot be specialized}}
144148# endif
145149
146150# 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}}
148154# endif
149155
150156# if TEST_STD_VER >= 23
@@ -171,6 +177,8 @@ struct std::conditional<true, S, S>; // expected-error {{cannot be specialized}}
171177template <>
172178struct std ::enable_if<true , S>; // expected-error {{cannot be specialized}}
173179
180+ #if TEST_STD_VER >= 20
174181template <>
175182struct std ::integral_constant<S, {}>; // expected-error {{cannot be specialized}}
176183#endif
184+ #endif
0 commit comments