在一个用 Doxygen 记录的 C++ 项目中,我在 Doxygen 注释中将一些函数标记为 \deprecated。有什么方法可以使用这些注释(使用 Doxygen 或其他工具)来检测另一个未弃用的函数正在调用已弃用的函数?(这个项目非常大,完成所有课程需要很多时间)。
谢谢
在一个用 Doxygen 记录的 C++ 项目中,我在 Doxygen 注释中将一些函数标记为 \deprecated。有什么方法可以使用这些注释(使用 Doxygen 或其他工具)来检测另一个未弃用的函数正在调用已弃用的函数?(这个项目非常大,完成所有课程需要很多时间)。
谢谢
如果您使用 GCC 或 clang 编译代码,您可以手动注释函数。
__attribute__((__deprecated__))
void dep_fun() { }
然后调用 dep_fun
代码中的任何位置都会发出诊断消息。
如果您\deprecated
始终如一地放置 doxygen 的注释,您应该能够使用 sed 等工具自动更新代码。
基于 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 上测试。)