重载的运算符无法在调试器中工作,但是文档称它们应该

时间:2018-12-26 16:00:16

标签: c++ visual-studio-2015 visual-studio-2017

我有一个简单的测试项目,该项目定义了一个带有操作符重载的类。

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中运行了此工具,但都无法对其进行评估。我尝试将运算符既作为成员函数又作为顶级函数实现,但又没有乐趣。

是否有人拥有或来源或了解为什么在“监视”窗口中使用重载运算符不起作用?应该行吗?有一些需要更改的微妙设置吗?

0 个答案:

没有答案