在使用Doxygen记录的C ++项目中,我在Doxygen评论中将一些函数标记为\已弃用。有没有办法使用这些注释(使用Doxygen或其他工具)来检测另一个未弃用的函数是否正在调用已弃用的函数? (该项目非常大,所有课程都需要花费很多时间。)
由于
答案 0 :(得分:9)
如果您使用GCC或clang编译代码,您可以手动注释函数。
__attribute__((__deprecated__))
void dep_fun() { }
然后在代码中的任何地方调用 dep_fun
将发出诊断消息。
如果你一直放置doxygen的\deprecated
注释,你应该可以使用像sed这样的工具自动更新代码。
答案 1 :(得分:3)
以Benjamins为基础回答: 一些有用的编译器指令:
#ifdef _MSC_VER
#define DEPRECATED __declspec(deprecated)
#elif defined(__GNUC__) | defined(__clang__)
#define DEPRECATED __attribute__((__deprecated__))
#else
#define DEPRECATED
#endif
//usage:
DEPRECATED void foo(int bar);
(警告:在clang和msc下未经测试,仅在GNUC上测试过。)