概括结构访问的高效实用方法?

chr*_*irk 1 c++ templates struct class

我有以下内容:

Struct A {
   char a;
   char b[10];
   int c;
   float d;
}

Struct B {
   float d;
   char b[10];
   char a;
   int c;
   bool e;
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个接受结构A或B的泛型函数来访问以下元素:

void SetD(A a, float f) { a.d = f; }
Run Code Online (Sandbox Code Playgroud)

将有许多不同的结构(大多数具有相同的元素)和许多功能来操作它们.

我正在尝试概括访问权限,因此我不必将每个方法复制到每个Struct中,从而导致重复的代码.不确定instanceof或模板在这里是否最好.关于如何优雅地实现这一点的任何想法?如果我能提供更多说明,请告诉我.

peo*_*oro 9

怎么样:

template< typename T > void setD( T &t, float f ) { t.d = f; }
Run Code Online (Sandbox Code Playgroud)

请注意,struct关键字是小写的,并且结构;在结束括号后需要半色调.