O uso de literais definidos pelo usuário em expressões às vezes requer espaço em branco

O código a seguir é compilado no GCC e no Clang:

long double operator""_a(long double);     
auto x = 0e1_a+0; // OK 

Mas não isso (substituindo_a com_e):

long double operator""_e(long double);
auto y = 0e1_e+0; // Error: unable to find numeric literal operator 'operator""_e+0'

OTOH, esse código compila:

auto z = 0e1_e +0; // OK

O que está acontecendo?

(Esta questão é inspirada emeste relatório de bug do GCC.)

questionAnswers(1)

yourAnswerToTheQuestion