检测C ++中不推荐使用的函数

时间:2012-10-11 12:27:06

标签: c++ doxygen deprecated

在使用Doxygen记录的C ++项目中,我在Doxygen评论中将一些函数标记为\已弃用。有没有办法使用这些注释(使用Doxygen或其他工具)来检测另一个未弃用的函数是否正在调用已弃用的函数? (该项目非常大,所有课程都需要花费很多时间。)

由于

2 个答案:

答案 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上测试过。)