Doxygen(1.8.10)は、値の文字列が文書化されていないと訴えています。ここではこれは私が単一のメンバーに構造体を削減し、イニシャライザから「secondVal」を削除した場合は、警告が消え、警告Doxygen文書化されていない文字列の値
/tmp/example.cpp:10: warning: Member firstVal (variable) of class MyClass is not documented.
につながる問題
#include <string>
struct MyStruct ///< Docs for struct
{
std::string a; ///< Docs for a
std::string b; ///< Docs for b
};
class MyClass ///< Docs for class
{
static struct MyStruct instance; ///< Docs for instance
};
struct MyStruct MyClass::instance = {"firstVal", "secondVal"};
を実証し、最小限の例です。しかし明らかにそれは解決策ではありません...
普遍的な初期化では機能しますか?私はそれが 'struct MyStruct MyClass :: instance {{" firstVal "、" secondVal "}};' –
であると思っています。それが働きました。(C++ 11/GCC 4.4以上、私はよりポータブルなソリューションが大好きです)。 'struct MyStruct MyClass :: instance {{" firstVal "}、{" secondVal "}};'(各文字列リテラルはそれ自身の中括弧のセットです)。コンパイラはこのToyの例で@AndrewLazarusの例を実際に受け付けますが、間違ったコンストラクタを呼び出すようです!コンパイラの警告は、2番目のargの '-Wmissing-field-initializers'(' -Wextra'の一部)をトリガーして以来、ここにあなたの友人です... – Alec