5

在一个用 Doxygen 记录的 C++ 项目中,我在 Doxygen 注释中将一些函数标记为 \deprecated。有什么方法可以使用这些注释(使用 Doxygen 或其他工具)来检测另一个未弃用的函数正在调用已弃用的函数?(这个项目非常大,完成所有课程需要很多时间)。

谢谢

4

2 回答 2

9

如果您使用 GCC 或 clang 编译代码,您可以手动注释函数。

__attribute__((__deprecated__))
void dep_fun() { }

然后调用 dep_fun代码中的任何位置都会发出诊断消息。

如果您\deprecated始终如一地放置 doxygen 的注释,您应该能够使用 sed 等工具自动更新代码。

于 2012-10-11T12:35:26.170 回答
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 上测试。)

于 2014-08-04T18:47:02.457 回答