首页 > 解决方案 > VS10 C++ 错误 C2833:“操作符字符串”不是可识别的操作符或类型

问题描述

我正在尝试operator ""_expExponent类创建一个自定义运算符,我可以像这样调用运算符:

std::cout << 10.5 * 2._exp << '\n';

我的其余代码:

struct Exponent
{
    long double value;
};

Exponent operator ""_exp(long double exponent)
{
    return exponent;
}

我正在使用Visual Studio 10编译器,但出现C2883错误:

Error C2833: 'operator string' is not a recognized operator or type

我努力了:

我找到了可能的用户定义运算符列表,但我找不到operator "". https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/ds533389(v%3dvs.100)

问题: 有人可以告诉我operator ""_exp"Visual Studio 2010中是否有可能?或者也许还有另一种方法可以实现这一目标?

标签: c++c++11visual-studio-2010visual-c++operator-overloading

解决方案


Microsoft Visual Studio 10 不是 C++11 编译器。

他们的第一个完全支持 C++11 的编译器(因此包括您尝试使用的用户定义的文字)是 MSVC2017。

最后,请注意这10.5是 a double而不是a long double


推荐阅读