構造体(struct | class)のメンバーをC++またはCで列挙する方法はありますか?メンバー名、型、値を取得する必要があります。私は変数が全体的にスコープされていた小さなプロジェクトで、前に次のサンプルコードを使用しました。私が今問題にしているのは、GUIからオブジェクト、ファイル、およびVM環境に一連の値をコピーする必要があるということです。別の「貧乏人の」反射システムを作り出すこともできますし、うまくいけば私がまだ考えていないより良いものを作り出すこともできます。誰にも考えがありますか?構造体のメンバーを列挙しますか?
EDIT:C++にはリフレクションがありません。
union variant_t {
unsigned int ui;
int i;
double d;
char* s;
};
struct pub_values_t {
const char* name;
union variant_t* addr;
char type; // 'I' is int; 'U' is unsigned int; 'D' is double; 'S' is string
};
#define pub_v(n,t) #n,(union variant_t*)&n,t
struct pub_values_t pub_values[] = {
pub_v(somemember, 'D'),
pub_v(somemember2, 'D'),
pub_v(somemember3, 'U'),
...
};
const int no_of_pub_vs = sizeof(pub_values)/sizeof(struct pub_values_t);
C++には反射がありません。 http://stackoverflow.com/questions/359237/why-does-c-not-have-reflection – lothar
フィードバックをいただきありがとうございます。私はC++にはリフレクションがないことを知っています。 – Mike
@Mike C++にリフレクションがないことを知っていれば、すぐに質問を無駄にしないでしょうか?あなたは何らかの反省(言葉に組み込まれているか、あなたのものを手に入れている)なしで尋ねるようなことをどのように列挙できますか? – lothar