我有一个问题,那就是种类的跟进此:如何在添加成员时保持struct的初始化?
Initializing default values in a struct
我有一个已经拿到17级的bool一个结构和clear()
方法他们都设置为false
。这是一个长期的项目;该代码仍然可以使用多年,并且可以添加到。有没有办法初始化所有会自动扩展的成员,这样有人添加新成员到结构不需要记住将它们添加到clear()
方法(除了注释“请不要忘记”)?
此代码库目前不是C++ 11,所以我不认为我可以在声明中进行初始化。
的代码是这样的:
typedef struct {
bool doThingA;
bool doThingB;
bool doThingC;
bool doThingD;
// etc for several more bools
void clear() {
doThingA = false;
doThingB = false;
doThingC = false;
doThingD = false;
// etc...
}
} EnableFlags;
请找到教你说'typedef struct'的人,删除他们的电话号码,在Facebook上解除他们,并将他们移动至少两个城市。 –
为什么不用'array' /'vector'或'bitset'? – Jarod42
你可以使用'std :: array'来代替它,因为它是一个固定的大小,你可以在'clear'中自动知道大小。 –