I know this is an old feature but reading on user defined literals e.g.
return_t operator "" _a(long); // Literal operator for user-defined INTEGRAL literal
I was reminded that
the leading underscore is required. (Only the Standard Library is allowed to define literals without the underscore.) (A)
This seems to break pattern since so far the implementation worked with the underscorey names and left us the good ones, for example reserved to the implementation are names that
- Contain a double underscore
- Begin with an underscore followed by a capital letter
Furthermore quote (A) is somewhat dangerous in the presence of rule (2). So why the inconsistency?