我遇到了一个大型 pod 结构,我想在其中添加一个std::vector
成员。
struct LargePodStruct {
float x,y,z;
int *arr;
int sz;
... // dozens of primitive types
std::vector<int> the_new_vector;
};
为了向vector
这个结构添加 a,我需要用 . 替换calloc()
这个结构的所有实例new
。
另外,我需要将每个现有成员实例化为零。但是,添加一个将每个成员实例化为零的默认构造函数是一项平凡的任务。将来也很容易忘记实例化一个新成员。
LargePodStruct::LargePodStruct()
x(), y(), z(), arr(), sz(), ... // +dozens of instantiations
{}
有没有更简单的方法来实例化这个结构的原始成员?
是否也有一种很好且优雅的方式来对工会成员进行零实例化?
.
struct LargePodStruct {
float x,y,z;
int *arr;
int sz;
...
union {
int i;
void *ptr;
} u;
std::vector<int> the_new_vector;
};