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

Getting parameter names of the struct in c++

本文关键字:参数 结构 c++ 获取      更新时间:2023-10-16

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

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

C++的未来版本有望包括一些反思,但反思研究小组(SG7)还没有真正开始制作任何准备纳入C++标准的东西。

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