有没有办法在C ++中获取在结构中声明的所有参数名称?
struct tables
{
struct numbers
{
int values;
};
struct people
{
int id;
string firstname;
string lastname;
};
struct subjects
{
int id;
string name;
int year;
};
struct sale
{
string name;
int size;
bool environment;
double v;
};
};
例如,我想知道tables->sale
结构中参数的名称。我怎么能这样做?
答案 0 :(得分:4)
使用当前的C ++,无法从语言中确定类类型的成员。你最好的选择是创建一个合适的声明处理器,提供合适的成员表示。例如,您可以使用clang来解析C ++代码并编写允许某种形式反射的辅助声明。
C ++的未来版本有望包含一些反思,但Reflection Study Group(SG7)并未真正开始生成任何可以包含在C ++标准中的内容。
答案 1 :(得分:0)
如果您需要在C ++中有很多反射/内省功能,您可能需要查看Qt,它允许您为类定义properties,然后您可以查询其属性。