有沒有辦法在C++或C中枚舉結構體(struct | class)的成員?我需要獲取成員名稱,類型和值。我之前在一個小型項目中使用了以下示例代碼,其中變量是全局範圍的。我現在遇到的問題是需要將一組值從GUI複製到對象,文件和VM環境。我可以創建另一個「窮人的」反思系統,或者希望能創造出我還沒有想到的更好的東西。有人有想法嗎?枚舉結構的成員?
編輯:我知道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 2009-05-20 15:25:34