Eya*_*l D 4 c++ iteration struct
我在迭代结构时遇到了一些麻烦.
可以根据编译器标志以不同方式定义结构.我想将所有结构成员设置为0.我不知道有多少成员,但它们都保证是数字(int,long ...)
请参阅以下示例:
#ifdef FLAG1
struct str{
int i1;
long l1;
doulbe d1;
};
#elsif defined (OPTION2)
struct str{
double d1
long l1;
};
#else
struct str{
int i1;
};
#endif
Run Code Online (Sandbox Code Playgroud)
我想我想做的一个很好的伪代码是:
void f (str * toZero)
{
foreach member m in toZero
m=0
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在c ++中轻松实现?
在C++使用中将任何PODO数据初始化为零= { 0 }.您不需要遍历每个成员.
StructFoo* instance = ...
*instance = { 0 };
Run Code Online (Sandbox Code Playgroud)