使用氧来记录发送给宏c++的函数

Use Doxygen to document a function that is sent to a MACRO C++

本文关键字:c++ 函数 记录      更新时间:2023-10-16

最近我们添加了一些代码,在编译时使用MACROS标记不推荐的代码。现在,oxygen没有正确地记录弃用的函数。

    #if defined(__GNUC__)
    #define DEPRECATED(func) func __attribute__((deprecated)) /**< mark a function as deprecated in gcc. */ 
    #elif defined(_MSC_VER)
    #define DEPRECATED(func) __declspec(deprecated) func /**< mark a function as deprecated in msvc. */
    #endif

注意,这是一个简化版本的宏为这篇文章,实际的宏做编译器版本检查等。

稍后在函数周围使用宏,以让编译器知道该函数已被弃用,从而发出编译器警告。

    /**
     * myMethod() is deprecated.
     */
    DEPRECATED(
        /**
         * @deprecated
         * Description of deprecated function
         * 
         * @param var this is a parameter
         *
         * @return this is returned 
         */
        int myMethod(int var)
    );

问题是氧想要显示DEPRECATED而不是myMethod(int var)的文档。

有谁知道如何让氧文档myMethod,而不是宏DEPRECATED?

你应该告诉氧,它必须删除DEPRECATED宏。您可以在配置文件中使用以下预处理器选项来完成此操作:

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = "DEPRECATED(x)=x"

您可以通过使用-d Preprocessor选项运行氧气来调试预处理结果。当这个选项存在时,氧将在预处理完成后将输入文件转储到输出。

更多信息请参见http://www.doxygen.org/preprocessing.html

使用@fn标记显式地告诉块引用的是什么。不如隐式连接方便,但更安全。