以下代码在 GCC 和 Clang 中编译:
long double operator""_a(long double);
auto x = 0e1_a+0; // OK
但不是这个(替换_a
为_e
):
long double operator""_e(long double);
auto y = 0e1_e+0; // Error: unable to find numeric literal operator 'operator""_e+0'
OTOH,此代码编译:
auto z = 0e1_e +0; // OK
这是怎么回事?
(这个问题的灵感来自这个 GCC 错误报告。)