Следующее кажется мне совершенно логичным, но неверным C ++. Объединение не может быть неявно приведено к одному из его типов-членов. Кто-нибудь знает вескую причину, почему бы и нет?
union u {
int i;
char c;
}
function f(int i) {
}
int main() {
u v;
v.i = 6;
f(v);
}
И может ли кто-нибудь предложить чистую альтернативу (самый чистый, который я могу придумать, это f(v.i);
, который, я признаю, очень чистый, но приведенное выше кажется еще более чистым)