MEA CULPA:
わかりました、私は間違っていました。VarInfo :: m_datatypeName []の宣言を見つけましたが、それはVarInfo ::m_datatypeName[9]でした。はい、ハードコーディングされています。私のために頭をかいたすべての人に謝罪します。
このエラーが表示されます:
too many initializers for 'std::string[9]'
このステートメントの場合:
std::string VarInfo::m_datatypeName[] = { "", "STRING", "TIME", "MACADDRESS", "IPADDRESS", "STRINGSET", "SET", "UINT32", "INT32", "BOOL" };
新情報:
注意:ステートメントには9または10はありません。割り当てリストに9つ以下の項目がある場合、これは問題なく機能します。問題なのはアイテム10番目のアイテムです。
新しい情報を終了する:
std :: string宣言がデフォルトの文字数のスペースを事前に割り当てているという漠然とした記憶があるので、文字列の配列に対して同様の動作を疑う必要があります。
だから、ここに質問があります。これを正しく宣言するにはどうすればよいですか?うまくいけば、m_datatypenamesのサイズをハード宣言する必要はありませんか?