@@ -112,19 +112,27 @@ void test() {
112
112
#endif
113
113
}
114
114
115
+ // The default constructor is suppressed by the deleted copy operations.
116
+ // The move operations are implicitly deleted due to the deleted copy operations.
117
+
115
118
// std::back_insert_iterator<std::string>, copyable
116
- static_assert (std::is_copy_constructible_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
117
- static_assert (std::is_copy_assignable_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
119
+ static_assert (
120
+ !std::is_default_constructible_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
121
+
122
+ static_assert (!std::is_copy_constructible_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
123
+ static_assert (!std::is_copy_assignable_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
118
124
119
- static_assert (std::is_move_constructible_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
120
- static_assert (std::is_move_assignable_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
125
+ static_assert (! std::is_move_constructible_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
126
+ static_assert (! std::is_move_assignable_v<std::basic_format_context<std::back_insert_iterator<std::string>, char >>);
121
127
122
128
// cpp20_output_iterator, move only
129
+ static_assert (!std::is_default_constructible_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
130
+
123
131
static_assert (!std::is_copy_constructible_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
124
132
static_assert (!std::is_copy_assignable_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
125
133
126
- static_assert (std::is_move_constructible_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
127
- static_assert (std::is_move_assignable_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
134
+ static_assert (! std::is_move_constructible_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
135
+ static_assert (! std::is_move_assignable_v<std::basic_format_context<cpp20_output_iterator<int *>, char >>);
128
136
129
137
int main (int , char **) {
130
138
test<std::back_insert_iterator<std::basic_string<char >>, char >();
0 commit comments