前提
・C++11(G++コンパイラでstd=c++11指定)
実現したいこと
色々なのデータを扱うテーブルを作成したいと思っています。
メンバ名は出せないので適当なものをはめ込んでいます。
// [データごとのoptionとなるデータ構造]
typedef struct
{
string name;
int default;
int min;
int max;
} option1_t ;
// option2_t 、option3_t もそれぞれ定義
// [データに対応したオプションを可変するための構造体(本当はunionにしたかったがコンパイルエラー)]
typedef struct
{
option1_t option1;
option2_t option2;
option3_t option3;
}
// [データテーブルの構造体定義]
typedef struct
{
target_common *tat;
const option_t option;
} table_t;
// データテーブル本体
const tabel_t TABLE[] =
{
{ &Data1, {.option1 = {"name", 0, -1, 1}}},
{ &Data2, {.option2 = {...}}},
{ &Data3, {.option3 = {...}}},
};
※target_common は参照データの基底クラスのポインタです。
既定クラスを継承した様々なデータをテーブルに書きます。
発生している問題・エラーメッセージ
g++だと、上記のテーブル作成方法の構造体メンバ指定の初期化はできないようでした。(C99では可能な記法)
何か良い書き方があれば教えていただけないでしょうか?(テーブルで一括管理したい)
0 コメント