在c ++中获取结构的参数名称

时间:2013-12-02 21:02:55

标签: c++ structure

有没有办法在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结构中参数的名称。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

使用当前的C ++,无法从语言中确定类类型的成员。你最好的选择是创建一个合适的声明处理器,提供合适的成员表示。例如,您可以使用clang来解析C ++代码并编写允许某种形式反射的辅助声明。

C ++的未来版本有望包含一些反思,但Reflection Study Group(SG7)并未真正开始生成任何可以包含在C ++标准中的内容。

答案 1 :(得分:0)

如果您需要在C ++中有很多反射/内省功能,您可能需要查看Qt,它允许您为类定义properties,然后您可以查询其属性。