doxygenのバグ?
C++/CLIで記述してる時にグローバル名前空間の型でプロパティ定義するとなんかおかしくなるっぽいです。(@doxygen1.8.4/windows)
//! @brief グローバル名前空間でtypedef typedef int INTEGER; //! @brief CLIでクラス記述 public ref class Sample { public: //! @brief メンバー定義。これは大丈夫っぽいのだけど… ::INTEGER Member; //! @brief プロパティ定義。これはアカンくなる property ::INTEGER Hoge { ::INTEGER get() { return 0; } } };
アカンの出方は、確認した中では
- そもそもそのプロパティが出力されなくなる
- property::INTEGERというproperty名前空間のINTEGER型と読んで、get/setを無視して変数(フィールド)の方にグループ分けされる
がありました。
なんか見つけた回避策
property /*!*/::INTEGER Hoge { ::INTEGER get() { return 0; } }
上述の2のタイプの現象からして、::が先頭に来るとproperty予約語と名前の区切りがうまくいかないんでは?と思い、::の前に/*!*/を適当に入れたら、どうも本当に効果があるようです…。
なお、そもそもpropertyさえなければ良いようで、例えば以下のC++クラスだとどれもちゃんと出力されました。
class Sample2 { public: ::INTEGER Member; const ::INTEGER Member2; virtual ::INTEGER Sub() { return 0; } virtual const ::INTEGER Sub2() { return 0; } };
誰かバグレポあげてくだしい(爆)