自动创建定义对象的向量

Automagically create a vector of defined objects?

本文关键字:向量 对象 定义 创建      更新时间:2023-10-16

假设我有一个在C 中成为类成员的宏。是否可以修改以下示例自动创建NumbersILike::nums?假设创建的对象不是相同的sizeof

#define MAKE_NUM(num) int num
class NumbersILike
{
    MAKE_NUM(three);
    MAKE_NUM(four);
    MAKE_NUM(five);
    std::vector<int*> nums = { &three,&four,&five };
};

这是可能的。我抬起头来'x macro'。

class NumbersILike
{
public:
#define LIST_OF_ITEMS 
X(three) 
X(four) 
X(five)
#define X(nm) int nm;
    LIST_OF_ITEMS
#undef X
    std::vector<int*> derp = {
    #define X(nm) &nm,
            LIST_OF_ITEMS
    #undef X
    };
};