【问题标题】:"using namespace" for Doxygen commentsDoxygen 注释的“使用命名空间”
【发布时间】:2011-01-30 17:52:41
【问题描述】:

我的库的所有类都定义在一个命名空间中。当我为 Doxygen 创建主页时,我必须在 cmets 中显式使用此命名空间以使 Doxygen 生成链接。我想为整个评论块使用类似“使用命名空间”的东西。

一个例子:

/**
* \mainpage My Library
*
* Use MyLibraryNamespace::MyClass to ...
*/

这里 Doxygen 会自动生成指向 MyLibraryNamespace::MyClass 文档的链接。

/**
* \mainpage My Library
*
* Use MyClass to ...
*/

这里 Doxygen 不会生成指向 MyLibraryNamespace::MyClass 文档的链接(因为我想在不同的命名空间中可能有多个 MyClass 定义)。为了便于阅读,我想在评论中省略命名空间前缀。是否可以不必每次都输入\ref MyLibraryNamespace::MyClass "MyClass"

【问题讨论】:

    标签: namespaces doxygen


    【解决方案1】:

    您可以通过将您的评论放在命名空间内,使此操作适用于一个命名空间。这让我很烦恼,因为我们有多个嵌套的命名空间,我讨厌在 Doxygen cmets 中使用它们。

    namespace MyLibraryNamespace {
    /**
    * \mainpage My Library
    *
    * Use MyClass to ...
    */
    };
    

    从 Markdown 角度看 2016 年更新

    我将 Doxygen 用于 Realm 的 C# 文档(是的,Doxygen 也处理典型的 C# XML 注释格式!)。 Markdown 主页使用@ref 来引用命名空间的类:

    The main classes you will use are:
    
    - [Realm](@ref Realms.Realm)
    - [RealmObject](@ref Realms.RealmObject)
    - [RealmList](@ref Realms.RealmList)
    - [Transaction](@ref Realms.Transaction)
    

    你可以看到一个渲染的版本online here

    【讨论】:

      【解决方案2】:

      你可以像这样使用别名:

      ALIASES += refmylib{1}="@ref MyLibraryNamespace::\1 \"\1\""

      这是一个用法示例:

      /** * \mainpage My Library * * Use @refmylib{MyClass} to ... */

      上面会被 doxygen 处理成这样:

      /** * \mainpage My Library * * Use @ref MyLibraryNamespace::MyClass "MyClass" to ... */

      【讨论】:

        猜你喜欢
        • 2018-01-22
        • 2011-01-17
        • 2023-03-24
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 2018-11-29
        • 2013-01-01
        • 2020-04-20
        相关资源
        最近更新 更多