У меня есть анонимный союз в структурыКак скопировать анонимный союз
struct A {
union {
char c;
double d;
};
A(const A &a) {
c = a.c;
d = a.d;
}
};
Мне было интересно, что это лучший способ, чтобы определить его конструктор копирования. Нужно ли копировать все поля объединения? Думаю, нам нужно ...?
Только один элемент данных объединения имеет значение в любой момент времени. Какой элемент данных содержит значение, обычно обозначается * discinantinant * (объектом), содержащимся внутри класса. Копировальные конструкторы использовали бы этот дискриминант. – Silversonic
Я бы использовал 'memcpy (& c, & a.c, sizeof (union {char c; double d;}));', возможно, с типом typedef для 'union'. – dasblinkenlight
@dasblinkenlight, будет ли c и d всегда находить с того же адреса? –