У меня возникают проблемы с итерацией структуры.Итерация структуры в C++
Структуру можно определить по-разному, в зависимости от флагов компилятора. Я хочу, чтобы установить все элементы этой структуры в 0. я не знаю, сколько членов есть, но все они гарантированно числа (целое, долго ...)
Смотрите пример ниже:
#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
Я думаю, хороший псевдо-код для того, что я хочу сделать, это:
void f (str * toZero)
{
foreach member m in toZero
m=0
}
есть ли способ легко сделать это в C++?
Этот код работает с C++ 11. То же самое можно сделать с C99, однако для этого требуется имя типа перед фигурными скобками: '* instance = (StructFoo) {0};'. Однако в объявлении переменной это не требуется: 'StructFoo instance = {0};' – cmaster