c++ - VS10 C++ 错误 C2833:“操作符字符串”不是可识别的操作符或类型
问题描述
我正在尝试operator ""_exp
为Exponent
类创建一个自定义运算符,我可以像这样调用运算符:
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中是否有可能?或者也许还有另一种方法可以实现这一目标?
解决方案
Microsoft Visual Studio 10 不是 C++11 编译器。
他们的第一个完全支持 C++11 的编译器(因此包括您尝试使用的用户定义的文字)是 MSVC2017。
最后,请注意这10.5
是 a double
,而不是a long double
。
推荐阅读
- python - 是否可以使用 IP 轮换来避免异常 TooManyRequestsException: 429 Too Many Requests with Instaloader?
- jekyll - Github Pages 和 Jekyll 永久链接走向不同的路径
- regex - “|” 字符将被忽略
- java - 抽象类中具有初始值的映射
- swift - 如何同时获取文档数据和参考数据?(Firestore,Swift)
- python - 尝试获取 2 个时间戳之间的持续时间时遇到问题
- python - Tensorflow 2:根据 2D 张量对 3D 张量进行排序
- django - Django 管理员未在模型中显示完整的字段
- c# - XR按钮所有功能
- sorting - Kotlin:将预先排序的序列合并为排序序列