Jam*_*son 16 c c++ refactoring function
我正在用C++重构一些代码,我想弃用一些旧的方法.我目前查找所有方法的方法如下所示:
这完全很糟糕.我也尝试过grepping source来获取函数调用的名称,但是我有时会遇到带有不同参数的同名函数的问题,所以我的编译让C++编译器为我解析名称.我已经为C#找到了这个问题,但我的代码库完全用C++实现.
有没有更好的方法来找到C++中类方法或函数的所有调用者?我在Unix系统上使用GCC,但跨平台解决方案将是最高级的.
eph*_*ent 35
GCC允许你用变量,函数和方法来装饰__attribute__((deprecated)),这将对所有的callite发出警告(除非-Wno-deprecated-declarations给出).
class A {
public:
A() __attribute__((deprecated)) {}
};
int main() {
A a;
}
Run Code Online (Sandbox Code Playgroud)
$ g++ test.c test.cc: In function ‘int main()’: test.cc:6: warning: ‘A::A()’ is deprecated (declared at test.cc:3)
Jos*_*ley 10
Eclipse可以在没有任何插件的情况下完成.对于像这样的东西,它可以是一个有用的工具,即使你不想将它用于你的日常编辑器.
您还可以使用Eclipse的内置重构支持来重命名重载的函数,以便它们不再过载.Eclipse也是完全跨平台的; 您可以使用其索引器,搜索引用和重构等功能,即使是在其他IDE中维护和构建的项目也是如此.