Array von Arrays initialisieren
-
Wieso geht das nicht?
#include <array> int main() { std::array<std::array<int,2>,4> a = { {1,2},{3,4},{5,6},{7,8} }; }
gibt aus:
main.cpp:5:67: error: too many initializers for 'std::array<std::array<int, 2ul>, 4ul>' std::array<std::array<int,2>,4> a = { {1,2},{3,4},{5,6},{7,8} }; ^
-
#include <array> int main() { std::array<std::array<int,2>,4> a = {{ {1,2},{3,4},{5,6},{7,8} }}; }
-
danke
-
Hahaha, dank meinem DR (http://wg21.cmeerw.net/lwg/issue2590) ist das gar nicht garantiert möglich, weil eine braced-init-list keinen Typ hat.
Hätte mir die resolution wohl genauer überlegen sollen...
Edit: Hab einen neuen Defekt eingereicht.
-
Mal so 'ne andere Frage: Wie geht man vor, wenn man sich mit dem C++-Standard so gut auskennen möchte, wie z.B. camper oder Arcoth?
Habt ihr den Standard durchgelesen und euch das alles auswendig gemerkt oder habt ihr eine C++-Implementierung geschrieben? Könnt ihr irgendwelche weiterführenden C++-Bücher vorschlagen (Effective... habe ich schon gelesen)?
-
Effective C++ ist ein Buch für Fortgeschrittene. Deine Frage jedoch war eine Anfängerfrage, die du erstens selbst hättest lösen können und zweitens kein fortgeschrittenes Thema ist. Vielleicht solltest du nochmal ein Grundlagenbuch überarbeiten, am besten das von Stroustrup.
Den Standard-Draft durchzulesen würde ich dir nicht vorschlagen. Wenn du sprachspezifische Probleme hast und du die Antworten sonst nirgends finden kannst, dann kannst du den Standard-Draft aufschlagen.
Aber im Großen und Ganzen schlage ich dir vor nochmal genauer Struppis Buch unter die Lupe zu nehmen und dann anfangen ein paar sinnvolle Projekte zu schreiben. Davon hast du nämlich auch sehr viel von.
Eine genaue Anleitung dazu wie man ein Guru wird, gibt es leider nicht. Wie wärs mit Motivation, Eigeninitiative, Fragen selber recherchieren, seinen Spaß an der Sache haben und viel lesen.