如何在Visual Studio中查找特定类的重载运算符的所有引用?

时间:2011-08-02 19:07:43

标签: c++ visual-studio

如果我有一个包含重载==运算符函数的类,如何找出整个代码中这个重载运算符的使用位置? (除了在重载的==方法中放置一个断点,并查看代码是否会命中它。)我尝试在Visual Studio中进入类视图,右键单击该方法,然后选择“查找所有引用”但它声称当我知道至少有一个我添加时,没有参考文献。

4 个答案:

答案 0 :(得分:18)

暂时将操作员设为私有且未实现。这将在您编译时捕获用途。

答案 1 :(得分:3)

在类中注释掉operator==声明并重新编译。尝试使用该功能的所有地方都会产生错误。

答案 2 :(得分:2)

An update on Mark B's answer: mark the function declaration with =delete. This will work with all modern versions of Visual Studio, and also works with free functions.

class Foo {
    bool operator == (const Foo &rhs) const =delete;
}
bool operator == (const Bar &lhs, const Bar &rhs) = delete;

...
Foo f1, f2;
if(f1 == f2) { // C2280 (…) : attempting to reference a deleted function

答案 3 :(得分:0)

您可以尝试加载项Visual Assist。它确实提供了许多增强的语法高亮,但我认为它不会突出显示重载的运算符。

Visual Studio应该显示overloaded functions(使用箭头),但AFAIK无法为操作员显示此信息。