@class【クラス】・@struct【構造体】・@union【共用体】・@interface【インタフェース】
@fn【関数・メソッド】・@property【プロパティ】・@typedef【型定義】・@var【変数・列挙子】
@showrefby【参照元の表示】・@hiderefby【参照元の非表示】・@showrefs【参照先の表示】・@hiderefs【参照先の非表示】
@enum【列挙型】
@def【マクロ定義 (#define)】
@qualifier【修飾ラベル】1.9.6
@class【クラス】
@struct【構造体】
@union【共用体】
@interface【インタフェース】
メモ
- クラス・構造体・共用体・インタフェースの定義を記述
- 定義の直前では、通常は省略
その他の位置に記述する場合に使用 - メンバの簡易な説明は後置で記述するとスマート (コメントブロック 参照)
- 定義の直前では、通常は省略
- プライベートメンバを出力する場合、EXTRACT_PRIVATE【プライベートメンバの出力有無】をYESに設定
- グローバルな@struct【構造体】・@union【共用体】を出力する場合、@file【ファイル情報】を記述
- 関連
- 外部リンク
構文
@class クラス名 [ヘッダファイル名] [ヘッダファイル]
@struct 構造体名 [ヘッダファイル名] [ヘッダファイル]
@union 共用体名 [ヘッダファイル名] [ヘッダファイル]
@interface インタフェース名 [ヘッダファイル名] [ヘッダファイル]
ヘッダファイル名:ヘッダファイルへのリンクを作成 (例:#include <ヘッダファイル名>)
ヘッダファイル:上記のリンクテキスト (""・<>で囲むと、"ヘッダファイル"・<ヘッダファイル>)
例
/// @brief クラスAの概要
/// @details クラスAの詳細
/// @note @@class 省略
class ClassA
{
public:
int varPublicA1 = 0; ///< 変数1の概要 (後置)
/** @brief 変数2の説明 (前置1) */ int varPublicA2 = 0;
/// @brief 変数3の概要 (前置2)
int varPublicA3 = 0;
/// @brief コンストラクタの概要
/// @details コンストラクタの詳細
/// @param [in] p 引数の説明
ClassA(int p) {
}
/// @brief メソッドの概要
/// @details メソッドの詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
int methodPublicA(int p) {
return p;
}
};
class ClassB
{
public:
int varPublicB = 0;
ClassB(int p) {
}
int methodPublicB(int p) {
return p;
}
};
/// @class ClassB
/// @brief クラスBの概要
/// @details クラスBの詳細
/// @var ClassB::varPublicB
/// @brief 変数の概要
/// @fn ClassB::ClassB
/// @brief コンストラクタの概要
/// @details コンストラクタの詳細
/// @param [in] p 引数の説明
/// @fn ClassB::methodPublicB
/// @brief メソッドの概要
/// @details メソッドの詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @file
/// @brief 構造体Aの概要
/// @details 構造体Aの詳細
/// @note @@struct 省略
struct StructA {
int member_A_1; ///< メンバA1の概要 (後置)
/** @brief メンバA2の概要 (前置1) */ int member_A_2;
/// @brief メンバA3の概要 (前置2)
int member_A_3;
};
struct StructB {
int member_B_1;
int member_B_2;
};
/// @struct StructB
/// @brief 構造体Bの概要
/// @details 構造体Bの詳細
/// @var StructB::member_B_1
/// @brief メンバB1の概要
/// @var StructB::member_B_2
/// @brief メンバB2の概要
/// @file
/// @brief 共用体Aの概要
/// @details 共用体Aの詳細
/// @note @@union 省略
union UnionA {
char c; ///< メンバ (char型) の概要 (後置)
/** @brief メンバ (int型) の概要 (前置1) */ int i;
/// @brief メンバ (long型) の概要 (前置2)
long l;
};
union UnionB {
char c;
int i;
};
/// @union UnionB
/// @brief 共用体Bの概要
/// @details 共用体Bの詳細
/// @var UnionB::c
/// @brief メンバ (char型) の概要
/// @var UnionB::i
/// @brief メンバ (int型) の概要
// 【C#】
/// @brief インタフェースAの概要
/// @details インタフェースAの詳細
/// @note @@interface 省略
public interface InterfaceA { }
public interface InterfaceB { }
/// @interface InterfaceB
/// @brief インタフェースBの概要
/// @details インタフェースBの詳細
@fn【関数・メソッド】
@property【プロパティ】
@typedef【型定義】
@var【変数・列挙子】
メモ
- 関数・メソッド・プロパティ・型定義・変数・列挙子を記述
- 定義の直前では、通常は省略
その他の位置に記述する場合に使用 - enum自体は、@enum【列挙型】を参照
- グローバルな定義を出力する場合、@file【ファイル情報】を記述
- 定義の直前では、通常は省略
- 関連
- 外部リンク
構文
@fn 関数・メソッド 宣言
@property プロパティ 宣言
@typedef 型定義 宣言
@var 変数・列挙子 宣言
例
/// @file
/// @brief グローバル関数の概要
/// @details グローバル関数の詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @note @@fn 省略
int GlobalFuncA(int p) {
return p;
}
int GlobalFuncSameName(int p) {
return p;
}
/// @fn GlobalFuncSameName(int)
/// @brief グローバル関数(int)の概要
/// @details グローバル関数(int)の詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @note @@fn はシグネチャを指定
float GlobalFuncSameName(float p) {
return p;
}
/// @fn GlobalFuncSameName(float)
/// @brief グローバル関数(float)の概要
/// @details グローバル関数(float)の詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @note @@fn はシグネチャを指定
/// @brief クラスの概要
/// @details クラスの詳細
class ClassFn
{
public:
int varA = 0; ///< 変数Aの概要
/** @brief 変数Bの概要 (@@var 省略) */ int varB = 0;
/// @brief 変数Cの概要 (@@var 省略)
int varC = 0;
int varD = 0;
/// @brief メソッドの概要
/// @details メソッドの詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @note @@fn 省略
int methodA(int p)
{
return p;
}
int methodB(int p)
{
return p;
}
};
/// @fn ClassFn::methodB(int)
/// @brief メソッドの概要
/// @details メソッドの詳細
/// @param [in] p 引数の説明
/// @return 戻り値の説明
/// @var ClassFn::varD
/// @brief 変数Dの概要
// 【C#】
/// クラスの説明
class ClassProperty
{
/// プロパティAの説明 (省略形)
public int PropertyA { get; set; }
public int PropertyB { get; set; }
/// @property PropertyB
/// @brief プロパティBの説明
public int PropertyC { get; set; }
}
/// @property ClassProperty::PropertyC
/// @brief プロパティCの説明
/// @file
/// @brief 型定義の概要
/// @details 型定義の詳細
/// @note @@typedef 省略
typedef unsigned int UINT;
typedef unsigned long ULONG;
/// @typedef ULONG
/// @brief 型定義の概要
/// @details 型定義の詳細
/// @file
/// @brief グローバル変数Aの概要
/// @details グローバル変数Aの詳細
/// @note @@var 省略
int GlobalVarA;
int GlobalVarB; ///< グローバル変数Bの概要 (後置)
int GlobalVarC;
/// @var GlobalVarC
/// @brief グローバル変数Cの概要
/// @details グローバル変数Cの詳細
@showrefby【参照元の表示】
@hiderefby【参照元の非表示】
@showrefs【参照先の表示】
@hiderefs【参照先の非表示】
メモ
- 参照元の表示有無を記述
- @showrefby【参照元の表示】 ・@hiderefby【参照元の非表示】 (REFERENCED_BY_RELATION【参照元の表示有無】は無視)
- 参照先の表示有無を記述
- @showrefs【参照先の表示】 ・@hiderefs【参照先の非表示】 (REFERENCES_RELATION【参照先の表示有無】は無視)
- 外部リンク
構文
@showrefby
@hiderefby
@showrefs
@hiderefs
例
/// クラスの説明
class ClassRef
{
public:
/// データXの説明 (参照元の表示)
/// @showrefby
int dataX;
/// データYの説明 (参照元の非表示)
/// @hiderefby
int dataY;
/// メソッドA1の説明 (参照先の表示)
/// @showrefs
void MethodA1() {
dataX = 1;
dataY = 2;
MethodB1();
MethodB2();
};
/// メソッドA2の説明 (参照先の非表示)
/// @hiderefs
void MethodA2() {
int x = dataX;
int y = dataY;
MethodB1();
MethodB2();
};
/// メソッドB1の説明 (参照先・参照元の表示)
/// @showrefs
/// @showrefby
void MethodB1() {
MethodC1();
MethodC2();
};
/// メソッドB2の説明 (参照先・参照元の非表示)
/// @hiderefs
/// @hiderefby
void MethodB2() {
MethodC1();
MethodC2();
};
/// メソッドC1の説明 (参照元の表示)
/// @showrefby
void MethodC1() {};
/// メソッドC2の説明 (参照元の非表示)
/// @hiderefby
void MethodC2() {};
};
@enum【列挙型】
メモ
- 列挙型を記述
- 定義の直前では、通常は省略
その他の位置に記述する場合に使用 - 列挙子については、@var【変数・列挙子】を参照
- グローバルな定義を出力する場合、@file【ファイル情報】を記述
- 定義の直前では、通常は省略
- 関連
- 外部リンク
構文
@enum 列挙型名
例
/// @file
/// @brief 列挙型Aの概要
/// @details 列挙型Aの詳細
/// @note @@enum 省略
enum EnumA
{
ENUM_A_1, ///< 列挙子A1の概要 (@@var 省略)
/** @brief 列挙子A2の概要 (@@var 省略) */ ENUM_A_2,
/// @brief 列挙子A3の概要 (@@var 省略)
ENUM_A_3,
};
enum EnumB
{
ENUM_B_1,
ENUM_B_2
};
/// @enum EnumB
/// @brief 列挙型Bの概要
/// @details 列挙型Bの詳細
/// @var EnumB::ENUM_B_1
/// @brief 列挙子B1の概要
/// @var EnumB::ENUM_B_2
/// @brief 列挙子B2の概要
/// @brief クラスの概要
/// @details クラスの詳細
/// @note @@class 省略
class ClassEnumC
{
public:
/// @brief 列挙型Cの概要
/// @details 列挙型Cの詳細
/// @note @@enum 省略
enum enumC
{
C1, ///< 列挙子C1の概要
C2 ///< 列挙子C2の概要
};
};
class ClassEnumD
{
public:
enum enumD
{
D1,
D2
};
};
/// @class ClassEnumD
/// @brief クラスの概要
/// @details クラスの詳細
/// @enum ClassEnumD::enumD
/// @brief 列挙型Dの概要
/// @var ClassEnumD::D1
/// @brief 列挙子D1の概要
/// @var ClassEnumD::enumD ClassEnumD::D2
/// @brief 列挙子D2の概要
@def【マクロ定義 (#define)】
メモ
- マクロ定義 (#define) を記述
- 定義の直前では、通常は省略
その他の位置に記述する場合に使用 - @file【ファイル情報】も記述
- 定義の直前では、通常は省略
- 関連
- 外部リンク
構文
@def マクロ名
例
/// @file
/// @brief マクロの概要
/// @details マクロの詳細
/// @note @@def 省略
#define MIN_WIDTH 640
#define MIN_HEIGHT 400
/// @def MIN_HEIGHT
/// @brief マクロの概要
/// @details マクロの詳細
/// @brief マクロの概要
/// @details マクロの詳細
/// @param x 値xの説明
/// @param y 値yの説明
/// @return 戻り値の説明
/// @note @@def 省略
#define MAX(x, y) ((x)>(y) ? (x):(y))
@qualifier【修飾ラベル】1.9.6
メモ
- クラス・メンバ等に修飾ラベルを追加
- 複数指定可
- 外部リンク
構文
@qualifier ラベル 1.9.6
@qualifier "ラベルテキスト" 1.9.6
例
/// @brief クラスの概要
/// @details クラスの詳細
/// @qualifier Label_Qualifier_A
/// @qualifier Label_Qualifier_B
/// @qualifier Label_Qualifier_C
class ClassQualifier
{
public:
/// @brief メソッドの概要
/// @details メソッドの詳細
/// @qualifier "Text Qualifier A"
/// @qualifier "Text Qualifier B"
/// @qualifier "Text Qualifier C"
static void methodQualifier() {}
/// @brief 変数の概要
/// @details 変数の詳細
/// @qualifier "修飾ラベル A"
/// @qualifier "修飾ラベル B"
/// @qualifier "修飾ラベル C"
static int varQualifier;
};
【HTML出力例:クラス】
ClassQualifier クラスLabel_Qualifier_ALabel_Qualifier_BLabel_Qualifier_C
【HTML出力例:メソッド】
◆ methodQualifier()
| inlinestaticText Qualifier AText Qualifier BText Qualifier C |
メソッドの概要
メソッドの詳細
【HTML出力例:変数】
◆ varQualifier
| static修飾ラベル A修飾ラベル B修飾ラベル C |
変数の概要
変数の詳細