On Tue, Nov 21, 2023 at 06:17:02PM +0100, Jakub Jelinek wrote:
> The
> static_assert (false, "foo"_myd);
> in the new testcase shows where it is valid (in C++26 and as extension in
> older standards). For C++26 we could use unevaluated string literal rather
> than string literal in the wording, but C++23 and earlier don't have that,
> so we would need to say something like non user-defined string literal without
> encoding prefix or object with 'size' and 'data' members.
Or do you want to just use
error_at (location, "%<static_assert%> message must be a "
"unevaluated string literal or object with "
"%<size%> and %<data%> members");
wording (even when it is in C++26 term) regardless of the -std= level?
Jakub