我有一个简单的测试项目,该项目定义了一个带有操作符重载的类。
html select
如果我在return语句上放置一个断点,然后在Watch窗口中输入struct v2
{
float x;
float y;
v2 operator+ (const v2& rhs) const
{
return { x + rhs.x, y + rhs.y };
}
};
int main()
{
v2 a = { 0, 1 };
v2 b = { 2, 3 };
v2 c = a + b;
return 0;
}
,则会出现以下错误:a + b
但是no operator "+" matches these operands
的作用很明显,调试器是能够评估该功能。
但是,当我在documentation中搜索Visual Studio时,找不到任何不支持此功能的信息。实际上,我发现docs明确地表示,em {em}早在VS 2010中就对本机C ++的表达式求值器支持运算符重载。
我已经在VS 2015和VS 2017中运行了此工具,但都无法对其进行评估。我尝试将运算符既作为成员函数又作为顶级函数实现,但又没有乐趣。
是否有人拥有或来源或了解为什么在“监视”窗口中使用重载运算符不起作用?应该行吗?有一些需要更改的微妙设置吗?