On Tue, Feb 27, 2018 at 9:41 AM, Jonathan Wakely <jwakely....@gmail.com> wrote:
> Since the fix for PR c++/80955 any suffix on a string literal that
> begins with an underscore is assumed to be a user-defined literal
> suffix, not a macro. This assumption is invalid for a suffix beginning
> with two underscores, because such names are reserved and can't be used
> for UDLs anyway.

[lex.name]/3 reserves all identifiers containing double underscore,
but the spaceless one-token form does not actually use such an
identifier.

See the (equally reserved) _Bq example in [over.literal]/8:

double operator""_Bq(long double);                  // OK: does not
use the reserved identifier _­Bq ([lex.name])
double operator"" _Bq(long double);                 // uses the
reserved identifier _­Bq ([lex.name])

Reply via email to