У меня есть структура bools.
Он не содержит других элементов данных, кроме bool
.
struct foo {
bool b1 = false;
bool b2 = false;
bool b3 = false;
// many more ...
};
Без использования отражения или генерации кода,
Я ищу легкийспособ установить их всех в true, а затем установить их всех в false.
Допустимо ли их везде записывать в память?
foo f;
memset(&f, true, sizeof f);
memset(&f, false, sizeof f);
Пока я гарантирую, что члены данных всегда являются примитивами, это безопасная и четко определенная операция?Если нет, есть ли какие-либо другие предложения для обеспечения того, чтобы большой набор логических значений (большее количество из которых может быть добавлено в будущем), все они могли быть последовательно установлены в true / false.Я также хотел бы оставить их ложными по умолчанию.Причина, по которой я хочу время от времени устанавливать их значение true, заключается в том, что это полезно для модульных тестов и покрытия кода.