【发布时间】:2014-08-22 17:08:59
【问题描述】:
考虑这两个:
namespace X1
{
A operator "" _x(unsigned long long i) { return A{i}; }
};
namespace X2
{
B operator "" _x(unsigned long long i) { return B{i}; }
};
x 字面量定义了两次,但其中一个在 namespace X1 中定义,另一个在 namespace X2 中定义。
按照C++标准,这段代码可以编译吗?
【问题讨论】:
-
不,我在 Visual C++ 中做不到,它还不支持。
-
我推荐使用 ideone.com , coliru.stacked-crooked.com 或者类似的在线编译器。
-
它不能编译,但不是你想的那样。使操作员接受
unsigned long long参数而不是int。
标签: c++ c++11 user-defined-literals