Doxygenが名前空間とモジュールを認識するのに問題があります。問題は、\addtogroup
を名前空間内に配置するか名前空間外に配置するかに関するものだと思います。
/*!
* \addtogroup Records
* @{
*/
//! Generic record interfaces and implementations
namespace Records
{
//! Describes the record interface
class Interface;
} // End namespace Records
/*! @} End of Doxygen Groups*/
//! Generic record interfaces and implementations
namespace Records
{
/*!
* \addtogroup Records
* @{
*/
//! Describes the record interface
class Interface;
/*! @} End of Doxygen Groups*/
} // End namespace Records
namespace Records
をDoxygenNamespacesタブの下に、間接的にModulesタブの下に表示したいと思います。 名前空間ページの項目をクリックすると、Records::Interface
を含むページが生成されます。 モジュールタブの項目をクリックすると、Records::Interface
を含むページも生成されます。
私のDoxygenドキュメントでは、モジュールにある名前空間タブから欠落しているアイテムがあり、その逆もあります。このジレンマから。
では、適切な方法は、例1と例2のどちらですか? {Doxygenのマニュアルはこのトピックについて明確ではありません。}
Doxygen:\ addtogroup
Doxygen:名前空間の文書化
Doxygenと2つの例を使用して実験を実行しました。結果は次のとおりです。例のクラス名は、Doxygenとの混同を避けるために名前が変更されています。
/*!
* \addtogroup Records
* @{
*/
//! Generic record interfaces and implementations
namespace Records
{
//! Describes the record interface
class Interface;
} // End namespace Records
/*! @} End of Doxygen Groups*/
(メインバーにある)[モジュール]ボタンをクリックします。
ウィンドウの[レコード]モジュールをクリックします。
//! Generic record interfaces and implementations
namespace Fields
{
/*!
* \addtogroup Fields
* @{
*/
//! Describes the record interface
class Interface;
/*! @} End of Doxygen Groups*/
} // End namespace Fields
(メインバーにある)[モジュール]ボタンをクリックします。
ウィンドウの[レコード]モジュールをクリックします。
Doxygen \addtogroup
コマンドの場所は、それがnamespace
定義内にあるか外部にあるかによって、結果が異なります。名前空間の外部で宣言すると、上記の例1に示すように、DoxygenModulesタブに名前空間が表示されます。 \addtogroup
コマンドが名前空間内に配置されている場合、上記の例2に示すように、DoxygenModulesタブには名前空間が表示されません。 名前空間をDoxygenModulesタブにリストする場合は、名前空間の外にある\addtogroup
コマンドを見つけます。
別の方法として、名前空間のドキュメントで \ingroup
Records
を使用することもできます。
/**
* \defgroup Records Title for records module
* @brief Short doc of Records
*
* Long doc of Records.
*/
/**
* @brief Generic record interfaces and implementations
*
* \ingroup Records
*/
namespace Records {
/// Describes the record interface
class Interface;
} /* namespace Records */