如何在Visual Studio中找到特定类的重载运算符的所有引用?
How to find all references of a particular class's overloaded operator in Visual Studio?
如果我有一个包含重载==操作符函数的类,我如何找出这个重载操作符在整个代码中使用的位置?(除了在重载的==方法中放置一个断点并查看代码是否碰到它。)我尝试在Visual Studio中进入类视图,右键单击该方法,并选择"查找所有引用",但当我知道至少有一个我添加的引用时,它声称没有引用。
暂时使操作符为私有且未实现。这将在编译时捕获这些用法。
注释掉类中的operator==
声明并重新编译。
对Mark B的回答的更新:用=delete
标记函数声明。这将适用于所有现代版本的Visual Studio,也适用于自由函数。
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
您可以尝试Visual Assist插件。它确实做了很多增强的语法突出显示,但我不认为它突出了重载操作符。
Visual Studio应该向您显示重载函数(使用箭头),尽管据我所见,没有办法为操作符显示这一点。
相关文章:
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 重载运算符new[]的行为取决于析构函数
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 在 myVector 类中重载运算符 + 时出错
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 如何在 cpp 中重载运算符 +=?
- C++ 如何重载 [] 运算符并进行函数调用
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 重载运算符有地址吗?
- 如何迭代重载运算符 [] 的类?
- 重载运算符与添加问题
- 模板基类中的重载运算符
- 如何调用用于重载运算符"<<"的 friend 函数?
- 在 C++17 中的命名空间和子命名空间中重载运算符是不明确的
- 重载运算符<<采用谷歌 C++ 风格
- C++ 如何正确重载 + 运算符
- cout (<<) 重载运算符不打印减去的矩阵
- 如何在 c++ 中重载运算符 + 以便能够 whrite c_str = "smth" + c_str;
- 重载运算符*以获取对另一个类的实例的引用