我正在尝试创建用户定义的文字,但在使用它时会收到错误消息。 海湾合作委员会说
无法找到数字文字运算符'operator"" _uint'
而clang告诉我
错误:没有匹配的文字运算符可以调用'运算符"" _uint'使用类型' unsigned long long'或者' const char *',并且没有匹配的文字运算符模板
我将代码缩减为以下MCVE:
#include <cinttypes>
unsigned int operator"" _uint(char const *, std::size_t) { return 0; }
int main() {
return 1_uint;
}
您可以在ideone上看到上述错误。
答案 0 :(得分:0)
正如您可以在cppreference.com上详细阅读的那样,文字运算符有许多不同的版本。
OP中的那个专门用于字符串文字,并且不能用于整数。相反,&#34;后退&#34;整数的版本,只需要const char*
而没有第二个std::size_t
参数:
#include <cinttypes>
unsigned int operator"" _uint(char const *) { return 0; }
int main() {
return 1_uint;
}
适用于ideone。