我可以直接在用户定义的文字结果上调用方法吗?

时间:2018-02-24 23:11:29

标签: c++ c++11 user-defined-literals

我尝试直接在用户定义的文字结果上调用方法,但我的结果因编译器而异。

#include <string>

std::string operator ""_test(unsigned long long value)
{
    return std::to_string(value);
}

int main()
{
    1000_test.size();   // 1) NOK on Clang/GCC, OK on MSVC
    (1000_test).size(); // 2) OK everywhere
    1000_test + "a";    // 3) OK everywhere
}

Demo on Godbolt

案例1)似乎很奇怪,因为编译器似乎不允许定义_test.size用户定义的文字。

那么1)情况下哪个编译器正确?标准说什么?

0 个答案:

没有答案