Minimal Codebeispiel:C++ 11 „In der Klasse Initialisierung“ Feature funktioniert nicht für die Gewerkschaften
struct B {
union U {
struct S {} s;
int i = 100;
}
u;
};
Wenn wir nun ein B obj;
erklären dann die obj.u.i
einen Müll Wert statt 100
zugeordnet ist. Siehe demo here. (Der Müllwert unterscheidet sich basierend auf Optimierungsflags usw.).
Die Funktion "In Klasseninitialisierung" soll mit Unionen arbeiten.
- Wenn ja, wie lautet die richtige Syntax? Oder ist das ein g ++ Bug?
- Wenn nicht was dann
int i = 100;
tut?
+1 Gute Frage. – Nawaz
[clang] (http://coliru.stacked-crooked.com/view?id=6ab1a0f46b2229dfc46dfa6f4f5e3163-6e9f1f680880347f6708b805c806db62) scheint mit Ihrem Code zufrieden zu sein. – Praetorian
@Praetorian, Danke. Sie haben jedoch die Ausgabeanweisungen nicht ausgegeben. Also hier ist die korrekte [clang output] (http://coliru.stacked-crooked.com/view?id=542928082d0e3f7d6edd525a7fcfac44-6e9f1f680880347f6708b805c806db62). – iammilind