同じ名前のフィールドを持ついくつかの異なる C++ 構造体とクラスがあり、頻繁にコピーする必要があります。私は次のようなことをしたいと思います:(basy疑似コードで)
struct S{double a;
double b;
double c;};
class C{public: void set_a(double a);
void set_b(double b);
void set_c(double c); };
S s; C c;
#FOR F in FIELDSOF(S)
c.set_${F}(${F});
#ENDFOR
良いアイデアであるかどうかにかかわらず、これを実現するために C++ プリプロセッサまたは C++ テンプレートを悪用する方法はありますか? 私はg ++とclang ++を使用しています。
MAKO のようなテンプレート エンジンについては既に認識しており、コード生成を行うプログラムを作成できることも認識しています。知っておく必要がある場合、私がこれを使用したいことの 1 つは、C++ 構造体から Google の protobuf を埋めることです。