El uso de literales definidos por el usuario en expresiones a veces requiere espacios en blanco
El siguiente código se compila tanto en GCC como en Clang:
long double operator""_a(long double);
auto x = 0e1_a+0; // OK
Pero no esto (reemplazando_a
con_e
):
long double operator""_e(long double);
auto y = 0e1_e+0; // Error: unable to find numeric literal operator 'operator""_e+0'
OTOH, este código compila:
auto z = 0e1_e +0; // OK
¿Que esta pasando?
(Esta pregunta está inspirada eneste informe de error de GCC.)