2017-03-08 63 views
1

考慮以下代碼:Doxygen的:移動一個靜態變量文檔函數內部

#include <string> 

namespace MyNamespace 
{ 

/** \brief Error Class */ 
class Error 
{ 
public : 
    /** \brief Constructor */ 
    Error (int in_code, const std::string& in_message); 
    ... 
}; 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

}; 

myNameSpace對象已經是doxygen的組的一部分。當我生成的文件,我得到:

  • 一個頁面Error類描述
  • SUCCESSERROR_UNKNOWN都在MyNamespace頁 「功能」(奇怪!)

我怎樣才能標籤SUCCESSERROR_UNKNOWN出現在Error類描述頁面中?

注意:由於我的組列表被凍結(我們希望每個庫有一個組),所以我無法定義一個新組並將其放入。 「隱藏」組可能是解決方案。

回答

1

到目前爲止,我能找到的最好的「解決方案」是使用\memberof

此:

/** \memberof Error @{ */ 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

/** @} */ 

將移動SUCCESSERROR_UNKNOWNError類描述 「靜態Public成員函數」。這不是很好,因爲它們與其他真正的靜態公共成員函數混合在一起。但是,增加一個\name標籤,以及...

/** \memberof Error @{ */ 
/** \name Error values: */ 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

/** @} */ 

將一個「誤差值」一節中移動SUCCESSERROR_UNKNOWNError類描述「相關功能」下,用一個漂亮的注意事項報告(Note that these are not member functions.) ....這絕對是可以接受的...

0

在代碼中,SUCCESSERROR_UNKNOWNError類的不一部分,所以生成的文檔是正確的(的「有趣的問題ction「旁邊)。

試圖讓doxygen將它們顯示爲Error類的一部分是非常具有誤導性的,因爲文檔和代碼現在相互矛盾。

如果您真的想讓SUCCESS成爲Error類的一部分,請在代碼中使其成爲如此。

或者,這可能是意圖,在Error類的文檔中,添加評論,如@see SUCCESS,@see ERROR_UNKNOWN

這將生成「另請參見」註釋,指向這些項目的文檔。

+0

@see不可行,因爲至少有40個不同的靜態'錯誤'對象可用。我知道生成的文檔是正確的,我也知道這些靜態對象應該是類的一部分,而不是全局的,但我現在不能改變它...我寫的解決方案並不是太糟糕,因爲文檔提到「這些不是會員功能」。... – jpo38