c++ - 保留名称和用户文字

标签 c++ language-lawyer user-defined-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没关系 - 根据这个例子。

关于c++ - 保留名称和用户文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62179658/

相关文章:

c++ - openCV undefined symbol _cvCvtColor

c++ - 为什么 SFINAE 在更改类模板特化的位置时会搞砸?这是 C++ 错误吗?

c++ - 是否缺少必需的包含未定义行为?

c++ - 在模板参数中,哪些规则允许编译器推断数组的项数?

c++ - 将用户定义的文字与方法调用相结合

c++ - 用户定义文字的模板替代

c++ - 线程共享资源C++

c++ - 使用 swig 到 ocaml 的奇怪重命名行为

c++ - Boost ASIO async_write_some 真的很慢

c++ - 为什么用户定义的字符串文字和整数文字具有不同的行为?