@class【クラス】・@struct【構造体】・@union【共用体】・@interface【インタフェース】
@enum【列挙型】 ・@showenumvalues【列挙値の表示】1.12.0 ・@hideenumvalues【列挙値の非表示】1.12.0
@def【マクロ定義 (#define)】
@qualifier【修飾ラベル】1.9.61.13.0
@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の詳細
@enum【列挙型】
@showenumvalues【列挙値の表示】1.12.0
@hideenumvalues【列挙値の非表示】1.12.0
メモ
列挙型の記述
- @enum【列挙型】指定
- 定義の直前では、通常は省略 (自動解析)
その他の位置に記述する場合、必須 - グローバルな定義を出力する場合、@file【ファイル情報】を記述
列挙子の記述
- @var【変数・列挙子】指定
- 定義の直前(直後)では、通常は省略 (自動解析)
その他の位置に記述する場合、必須 - 警告:WARN_IF_UNDOC_ENUM_VAL【ドキュメント無し列挙子の警告有無】1.9.6
列挙値の表示有無
1.12.0- @showenumvalues【列挙値の表示】1.12.0・@hideenumvalues【列挙値の非表示】1.12.0
- 明示的な値設定のみ有効
- デフォルト:SHOW_ENUM_VALUES【列挙値の表示有無】 1.12.0
関連
外部リンク
構文
@enum 列挙型名
@showenumvalues 1.12.0
@hideenumvalues 1.12.0
例:省略・必須
/// @file
/// @brief 列挙型Aの概要
/// @details 列挙型Aの詳細 (@@enum 省略)
typedef enum EnumA
{
A_1, ///< 列挙子A1の概要 (@@var 省略)
/** @brief 列挙子A2の概要 (@@var 省略) */ A_2,
/// @brief 列挙子A3の概要 (@@var 省略)
A_3,
};
typedef enum EnumB
{
B_1,
B_2
};
/// @enum EnumB
/// @brief 列挙型Bの概要
/// @details 列挙型Bの詳細 (@@enum 必須)
/// @var EnumB::B_1
/// @brief 列挙子B1の概要 (@@var 必須)
/// @var EnumB::B_2
/// @brief 列挙子B2の概要 (@@var 必須)
【HTML出力例】
enum EnumA |
列挙型Aの概要
列挙型Aの詳細 (@enum 省略)
列挙値 | |
---|---|
A_1 | 列挙子A1の概要 (@var 省略) |
A_2 | 列挙子A2の概要 (@var 省略) |
A_3 | 列挙子A3の概要 (@var 省略) |
~.cpp の nnn 行目に定義があります。
enum EnumB |
列挙型Bの概要
列挙型Bの詳細 (@enum 必須)
列挙値 | |
---|---|
B_1 | 列挙子B1の概要 (@var 必須) |
B_2 | 列挙子B2の概要 (@var 必須) |
~.cpp の nnn 行目に定義があります。
例:クラス内定義
/// @brief クラスの概要
/// @details クラスの詳細 (@@class 省略)
class ClassEnumC
{
public:
/// @brief 列挙型Cの概要
/// @details 列挙型Cの詳細 (@@enum 省略)
enum enumC
{
C1, ///< 列挙子C1の概要 (@@var 省略)
C2 ///< 列挙子C2の概要 (@@var 省略)
};
};
class ClassEnumD
{
public:
enum enumD
{
D1,
D2
};
};
/// @class ClassEnumD
/// @brief クラスの概要
/// @details クラスの詳細 (@@class 必須)
/// @enum ClassEnumD::enumD
/// @brief 列挙型Dの概要 (@@enum 必須)
/// @var ClassEnumD::D1
/// @brief 列挙子D1の概要 (@@var 必須 / 参照方法1)
/// @var ClassEnumD::enumD ClassEnumD::D2
/// @brief 列挙子D2の概要 (@@var 必須 / 参照方法2)
【HTML出力例:列挙型のみ】
◆ enumC
enum ClassEnumC::enumC |
列挙型Cの概要
列挙型Cの詳細 (@enum 省略)
列挙値 | |
---|---|
C1 | 列挙子C1の概要 (@var 省略) |
C2 | 列挙子C2の概要 (@var 省略) |
~.cpp の nnn 行目に定義があります。
◆ enumD
enum ClassEnumD::enumD |
列挙型Dの概要
列挙型Dの詳細 (@enum 必須)
列挙値 | |
---|---|
D1 | 列挙子D1の概要 (@var 必須 / 参照方法1) |
D2 | 列挙子D2の概要 (@var 必須 / 参照方法2) |
~.cpp の nnn 行目に定義があります。
例:列挙値の表示有無
/// @file
/// @brief 列挙型Xの概要
/// @details 列挙型Xの詳細 (@@showenumvalues 指定)
/// @showenumvalues
enum EnumX
{
X_1 = 1, ///< 列挙子X1の概要
X_2 = 2, ///< 列挙子X2の概要
X_3 = 3, ///< 列挙子X3の概要
};
/// @brief 列挙型Yの概要
/// @details 列挙型Yの詳細 (@@hideenumvalues 指定)
/// @hideenumvalues
enum EnumY
{
Y_10 = 10, ///< 列挙子Y10の概要
Y_20 = 20, ///< 列挙子Y20の概要
Y_30 = 30, ///< 列挙子Y30の概要
};
/// @brief 列挙型Zの概要
/// @details 列挙型Zの詳細 (@@showenumvalues 指定:明示的な値設定なし)
/// @showenumvalues
enum EnumZ
{
Z_A, ///< 列挙子ZAの概要
Z_B, ///< 列挙子ZBの概要
Z_C, ///< 列挙子ZCの概要
};
【HTML出力例】
enum EnumX |
列挙型Xの概要
列挙型Xの詳細 (@showenumvalues 指定)
列挙値 | ||
---|---|---|
X_1 | 1 | 列挙子X1の概要 |
X_2 | 2 | 列挙子X2の概要 |
X_3 | 3 | 列挙子X3の概要 |
~.cpp の nnn 行目に定義があります。
enum EnumY |
列挙型Yの概要
列挙型Yの詳細 (@hideenumvalues 指定)
列挙値 | |
---|---|
Y_10 | 列挙子Y10の概要 |
Y_20 | 列挙子Y20の概要 |
Y_30 | 列挙子Y30の概要 |
~.cpp の nnn 行目に定義があります。
enum EnumZ |
列挙型Zの概要
列挙型Zの詳細 (@showenumvalues 指定:明示的な値設定なし)
列挙値 | |
---|---|
Z_A | 列挙子ZAの概要 |
Z_B | 列挙子ZBの概要 |
Z_C | 列挙子ZCの概要 |
~.cpp の nnn 行目に定義があります。
@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.61.13.0
メモ
概要
- クラス・メンバ等に修飾ラベルを追加
- 複数指定可
スタイル【HTML出力】
- ユーザー定義CSS で変更可 1.13.0
- ユーザー定義CSS:HTML_EXTRA_STYLESHEET【ユーザー定義追加CSS (HTML出力)】
- クラス:指定ラベル・ラベルテキスト (大文字 ⇒ 小文字 / 空白 ⇒ ハイフン)
外部リンク
構文
@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;
};
【ユーザー定義CSS】
/* @qualifier 対応 */
.label_qualifier_b {
background-color: green !important;
}
.text-qualifier-b {
background-color: orange !important;
}
【HTML出力例:クラス】
【HTML出力例:メソッド】
| inlinestaticText Qualifier AText Qualifier BText Qualifier C |
メソッドの概要
メソッドの詳細
【HTML出力例:変数】
| static修飾ラベル A修飾ラベル B修飾ラベル C |
変数の概要
変数の詳細