保留名称和用户文字

Reserved Names & User Literals

C++ 标准在所有范围内保留以下划线后跟大写字母开头的名称。

这是否适用于用户文字运算符?

例如

int _MyInt; // reserved, violation

template < char... >
auto operator "" _MyInt ( ); // reserved???

不,它允许使用下划线后跟大写字母(否则为保留标识符)。

Source

我在支持上述内容的标准中只找到了一个示例,而不是正式段落:

[over.literal]

double operator""_Bq(long double);    // OK: does not use the reserved identifier _­Bq
double operator"" _Bq(long double);   // uses the reserved identifier _­Bq 

因此,只要您不在 ""_Ud 之间放置 space 就可以了 - 根据示例。