https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108717

            Bug ID: 108717
           Summary: pasting """_" and "µm" does not give a valid
                    preprocessing token in user-defined literal operator
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pacoarjonilla at yahoo dot es
  Target Milestone: ---

The following code is accepted by clang and MSVC, but not GCC:

$ g++-13 --std=c++2b
'''
int operator""_µm(long double magnitude) noexcept // Micro sign, unicode 0x00b5
{
    return magnitude;
}
'''
But character 'µ' is unicode XID_Start, so it should be accepted.

Compiler output:

<source>:1:16: error: expected initializer before '\U000000b5m'
    1 | int operator""_µm(long double magnitude) noexcept \
      |                ^~
Compiler returned: 1

Reply via email to