libstdc++: Improve static assert messages

The message used for static assertions should be phrased so that it's
unambiguous whether the condition should be true or false. The message
should definitely not state the negative condition.

libstdc++-v3/ChangeLog:

	* include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
	Improve static_assert messages.
	* testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
	* testsuite/25_algorithms/copy_n/58982.cc: Likewise.
This commit is contained in:
Jonathan Wakely 2021-05-06 15:28:55 +01:00
parent 717d278af9
commit 07dd185755
3 changed files with 4 additions and 4 deletions

View file

@ -424,7 +424,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
is_move_assignable<_Tp>,
is_copy_assignable<_Tp>>;
// trivial types can have deleted assignment
static_assert( __assignable::type::value, "type is not assignable" );
static_assert( __assignable::type::value, "type must be assignable" );
#endif
const ptrdiff_t _Num = __last - __first;
if (_Num)
@ -735,7 +735,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
is_move_assignable<_Tp>,
is_copy_assignable<_Tp>>;
// trivial types can have deleted assignment
static_assert( __assignable::type::value, "type is not assignable" );
static_assert( __assignable::type::value, "type must be assignable" );
#endif
const ptrdiff_t _Num = __last - __first;
if (_Num)

View file

@ -38,5 +38,5 @@ test01(T* result)
T t[1];
std::copy(t, t+1, result); // { dg-error "here|deleted" }
}
// { dg-prune-output "not assignable" }
// { dg-prune-output "type must be assignable" }
// { dg-prune-output "use of deleted" }

View file

@ -38,5 +38,5 @@ test01(T* result)
T t[1];
std::copy_n(t, 1, result); // { dg-error "here|deleted" }
}
// { dg-prune-output "not assignable" }
// { dg-prune-output "type must be assignable" }
// { dg-prune-output "use of deleted" }