メンバーはstd::map<string, double>次のようになります。
X = [{"N", 200}, {"sigma", 1.0}, {"T", .2}]
さて、構造体を考えるとfoo Y:
struct foo {
int N;
double T;
};
タイプマッピングX -> Y ごとにカスタムクラスを作成せずX -> Yに、プログラムでキーと値のペアをマッピングできますか?ご了承ください:
X["sigma"]に含まれていませんY。つまり、マッピングは必ずしも1対1である必要はありません。- のタイプ
Y.Nはintで、X["N"]はdoubleです。
コンパイル時に何らかのトリックが行われない限り、答えはノーだと思います。
編集:私が探しているものが明確でない場合があります。この例の擬似コードバージョンは、次のようになります。
if("N" in X) -> Y.N = X["N"];
if("T" in X) -> Y.T = X["T"];
またはプログラムで:
for key in Y:
if (key in X) -> Y.key = X[key]