現在のプロジェクトの API を生成するために Doxygen を使用していますが、奇妙な動作に遭遇しました。基本的に、初期化リストを使用してクラスのコンストラクターでメンバー配列を設定すると、Doxygen は適切な出力を生成しません。
簡単なテストクラスを次に示します。
#ifndef TEST_HPP
#define TEST_HPP
class TestClass {
public:
/** Constructor Version 1 */
TestClass() : v{0,0,0} { }
/** Constructor Version 2 */
// TestClass() {
// v[0] = 0;
// v[1] = 0;
// v[2] = 0;
// }
protected:
/** my little array */
float[3] v;
};
#endif // TEST_HPP
コンストラクターのバージョン 1 を使用してファイルに対して doxygen を実行すると、コンストラクターのドキュメントがなく、変数 v について言及されていないクラスの比較的空の HTML ファイルが得られます。バージョン 1 をコメントアウトしてバージョン 2 を使用すると、Doxygen は適切に生成されます。クラスのドキュメント。
このタイプの配列設定が C++11 の新機能であることは知っていますが、それは初期化ですか、それとも初期化リストで行われるという事実ですか? この動作の原因を誰かが知っている場合は、コード全体でこれらのタイプの初期化子を使用しているため、感謝します。必要に応じて変更を一掃することは避けたいと思います。