如何在命名空间中引用用户定义的文本运算符
How to refer to user defined literal operator inside a namespace?
请考虑以下事项:
#include <iostream>
namespace X
{
void operator ""_test(unsigned long long x)
{
std::cout << x;
}
}
int main()
{
using namespace X;
10_test;
// 10_X::test; /* doesn't work */
}
我可以通过显式using namespace X;
引用namespace X
内用户定义的文字运算符。有没有办法在不显式包含命名空间的情况下引用文字运算符?我试过
10_X::test;
但当然不起作用,因为解析器认为X
引用运算符的名称。
X::operator ""_test(10)
有效,但很笨拙。
#include <iostream>
namespace X {
inline namespace literals {
void operator ""_test(unsigned long long x) {
std::cout << x;
}
}
}
int main() {
{
using namespace X::literals;
10_test;
}
{
using X::operator""_test;
10_test;
}
}
_test
既在X
又在X::literals
. 这允许人们在不从X
拉入所有东西的情况下using namespace X::literals;
,但在X
_test
内也可用。
导入单个文本有点烦人。
std
std::chrono
和std::literals
和std::chrono::literals
都这样做了。 inline namespace
允许您定义命名空间的子部分,您认为人们希望将其作为块导入而不获取其余部分。
相关文章:
- C++编程从外部文本文件定义数组大小
- 定义宏以将前缀 0x 添加到十六进制字符串文本
- 无法在模板参数中定义字符串文本
- 如何在C++中将自定义文本设置为 QLabel?
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 是否可以在运行时调用用于选择要调用的用户定义文本的逻辑?
- 使用用户定义文本的成员时出现编译错误
- 双参数构造函数的用户定义文本
- 自定义文本到语音转换中的语音
- QTextEdit中的自定义文本(代码)区域
- 预处理一个自定义文本文件,以使用Boost Spirit删除注释
- 在自定义文本区域中呈现光标的正确方法
- 制作参数化用户定义文本的任何方法
- 是否可以对基于字符串的用户定义文本进行强类型化
- 如何创建自定义文本编辑器
- 自定义文本框:高亮显示和选择
- 更改自定义文本C++的颜色
- Win32自定义文本框
- OpenFileDialog C#显示自定义文本
- 如何在QTextEdit中设置自定义文本颜色