保留名称和用户文字
Reserved Names & User Literals
C++ 标准在所有范围内保留以下划线后跟大写字母开头的名称。
这是否适用于用户文字运算符?
例如
int _MyInt; // reserved, violation
template < char... >
auto operator "" _MyInt ( ); // reserved???
不,它允许使用下划线后跟大写字母(否则为保留标识符)。
我在支持上述内容的标准中只找到了一个示例,而不是正式段落:
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 就可以了 - 根据示例。
C++ 标准在所有范围内保留以下划线后跟大写字母开头的名称。
这是否适用于用户文字运算符?
例如
int _MyInt; // reserved, violation
template < char... >
auto operator "" _MyInt ( ); // reserved???
不,它允许使用下划线后跟大写字母(否则为保留标识符)。
我在支持上述内容的标准中只找到了一个示例,而不是正式段落:
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 就可以了 - 根据示例。