私はいくつかの入力構造を持っていますので、他の構造に変換する必要があります。ある構造から別の構造にフィールドをコピーする方法
struct Source1
{
public float x1;
public float x2;
public float x3;
}
struct Source2
{
public float x1;
public float x3;
public float x2;
public float x4;
}
struct Target
{
public float x1;
public float x2;
public float x3;
}
ソース構造に必須のフィールド(型と名前は何であるか)がありますが、そのフィールドのオフセットは不明です。また、ソース構造には、私が必要としないいくつかの余分なフィールドが含まれているかもしれません。
ソース構造からターゲット構造に必要なフィールドをコピーする方法を教えてください。私はできるだけ早くそれを行う必要があります。
Cでは、この種の問題の非常に簡単なレシピがあります。
#define COPY(x, y) \
{\
x.x1 = y.x1;\
x.x2 = y.x2;\
x.x3 = y.x3;\
}
私は、フィールドの集合を得ることについて考え、その後のキーとしてその名を使用して、フィールドの値を取得するが、それは私に遅い解決策のように見えました。
リンクが死亡し、死者のリンクは誰に仕えていません。 –
@mjwills:ソース構造ごとに演算子を書く必要があるようですね。何百ものフィールドを持つ5つのソースがあるとしましょう。 – walruz
最終行@walruzをチェックしてください。 – mjwills