Brace-or-equal-initializers in einer anonymen Struktur innerhalb einer Struktur arbeiten nicht an der von VS2013 erzeugten Ausgabe. Da ist der Code:
%Vor%Kompilieren Sie diesen Befehl unter Linux:
%Vor%(Das Hinzufügen von Optimierungsflags hat keinen Einfluss auf das Ergebnis)
Erwartetes Ergebnis:
%Vor%Seltsam. Das Ausführen von dem mit VS2013 gibt Garbage-Werte. Wer hat Recht, wenn es um die Implementierung von C ++ 11-Standards geht? Ich bezweifle sehr, dass GCC daran schuld ist.
Hat es etwas mit einigen nutzlosen VS-Compiler-Optionen zu tun? Windows-Erweiterungen? Ich muss Standardkonstruktoren für die Strukturen wegen eines Fehlers machen, den MS gemacht hat? Das ist absurd.
Nicht statische Datenelement-Initialisierer, die in verschachtelten anonymen Strukturen stillschweigend ignoriert werden, sind ein bestätigter Fehler in Visual C ++ 2013, behoben in Visual C ++ 2015 RTM.
Ich muss Standardkonstruktoren für die Strukturen wegen eines Fehlers machen, den MS gemacht hat? Das ist absurd.
Ja, und nein, das ist nicht absurd.
Compiler sind auch Programme und neigen dazu, Fehler zu haben - einige mehr als andere.
Wenn Sie keine Wahl über das Werkzeug haben, müssen Sie mit den Einschränkungen des Werkzeugs arbeiten, egal wie absurd es in der Theorie klingt.
Tags und Links c++11 visual-c++-2013 member-initialization anonymous-struct