Угадайте, что делает вот такой код?
union S {
long long int number;
bool yes : sizeof(long long int);
};Вот тут можно посмотреть ответ.
Этот код проверяет, является ли число нечетным.
#include <iostream>
union is_odd {
long long int number;
bool yes : sizeof(long long int);
};
int main() {
std::boolalpha(std::cout);
for (long long int i = -10; i < 10; ++i) {
std::cout << i << " is odd? "
<< is_odd{ .number = i }.yes
<< "\n";
}
}
Вывод
-10 is odd? false
-9 is odd? true
-8 is odd? false
-7 is odd? true
-6 is odd? false
-5 is odd? true
-4 is odd? false
-3 is odd? true
...
Только способом из дурки.