1
私は、次があります。構造体アクセスを一般化するための効率的かつ実践的な方法は?
Struct A {
char a;
char b[10];
int c;
float d;
}
Struct B {
float d;
char b[10];
char a;
int c;
bool e;
}
と私のような要素にアクセスするために構造体AまたはBを受け入れる一般的な機能を作りたい:
void SetD(A a, float f) { a.d = f; }
があるであろう多くの異なる構造体(最も同じ要素)とそれを操作する多くの機能を備えています。
私はアクセスを一般化しようとしているので、それぞれのメソッドをそれぞれの構造体にコピーして重複したコードにする必要はありません。 instanceof
またはテンプレートがここで最もよくなるかどうかは不明です。どのようにこれをエレガントに実装するためのアイデアですか?もっと明確にすることができるかどうかを教えてください。
+1。あなたはテンプレートをテンプレート void setD(T&t、const U&f)を使ってさらに一般化することもできます。 –
Glen
これをuber-genericにしようとするなら、 'template void setAnything(T&t、UT :: * u、const V&v){t。* u = v; }}しかし、ある時点で、これは愚かになります。 –
MSalters