私がしたいことは次のようなものです。マクロのメンバーとインフルエンスのコンストラクタを追加しました
class MyClass {
list<FieldType> allFields;
ADDFIELD(field1, Type, args);
ADDFIELD(field2, Type, args);
MyClass(){
MAKE_FIELD_LIST();
}
}
、それはMAKE_FIELD_LIST()
は、各フィールドがリストオブジェクトallFields
にADDFIELD
を使用して追加置く
class MyClass {
list<FieldType> allFields;
Type field1 = Type(args);
Type field2 = Type(args);
MyClass(){
allFields.put(field1);
allFields.put(field2);
}
}
に展開されています。私は単純なもののために過去にマクロを使用しましたが、格納することができ、変数名の配列に追加する方法があるかどうかはわかりません。MAKE_FIELD_LIST
によって使用されます。
なぜこれが欲しいですか? – GManNickG
"次のようなもの"の結果はどうなると思いますか?マクロを扱うときの重要なステップは、展開すべきものを定義することです。 – molbdnilo
@ GManNickGには、各フィールドが実際にバッファ内のある範囲への参照にすぎない多くのオブジェクトがあります。メンバーがすべて検証される必要があり、それをリストオブジェクトに入れると、かなり簡単になることがあります。それ以外の場合は、名前でメンバーにアクセスできることが望ましい。 – Jias