メンバーは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]