不能定义用户定义的字面值

Cannot define user defined literals

本文关键字:定义 字面值 用户 不能      更新时间:2023-10-16

我正在阅读关于用户定义的文字,并且我遇到了这个代码片段,但是当我试图使用它时,我得到了编译器错误。

int operator ""_fix(long double d)
{
     // returns d as a 1.15.16 fixed point number
     return (int)(d*65536.0f);
}

显示Error: Expected an operator。我使用的是Visual STudio 2013,我相信它对c++ 11有很好的支持。你知道哪里出了问题吗?

请记住,""之后和后缀之前必须有一个空格。所以你应该写:

int operator "" _fix(long double d)
{ // ...