Java Umsteiger benötigt Hilfe bei "For-Each" Schleife
-
Das sieht ja geil aus.
Wobei das bei mir nicht kompiliert, offensichtlich hat mein Compiler wohl einen Bug:C:\Programming\C++\Saves\TEMPS\TEMP.cxx|117|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|119|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|121|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|123|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|126|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|128|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|130|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|132|error: wrong number of template arguments (1, should be 2)| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|64|error: provided for 'template<class T, class M> struct derive_name_parts'| C:\Programming\C++\Saves\TEMPS\TEMP.cxx||In function 'int main()':| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|162|error: template argument 1 is invalid| C:\Programming\C++\Saves\TEMPS\TEMP.cxx|162|error: '<expression error>::type' has not been declared|(MinGW GCC 4.8, Boost 1.53)
-
Btw, hier der Thread http://www.c-plusplus.net/forum/290867-full
Ein Gott bleibt ein Gott.Edit: Ich setz' mich ganz kurz mal ran, und schau, was bei mir rauskommt. Die MPL beherrsche ich leider nicht.
-
Bug. g++ kommt offenbar nicht mit ref-Qualifizierer als Teil des Funktionstyps zurecht. g++-4.8 bringt den selben Fehler, 4.9 alpha bringt nur noch 4 Fehler (in den Zeilen, in denen ein Ref-Qualifizierer aber kein cv-Q. auftritt).
clang schluckt es anstandslos.
-
4.9 alpha bringt nur noch 4 Fehler
Wo hast du das her?
Edit: Es ist doch noch nicht einmal 4.8.1 raus..
-
Sone schrieb:
Wo hast du das her?
svn-Snapshots.
Aus Bequemlichkeit verwende ich Gentoos toolchain-Overlay.
Sieht so aus, als ob wir mit C++1y einen neuen Arraytyp (of runtime bound) bekommen.
-
Habe mal den boost-Teil entfernt und die problematischen Stellen mit einem #ifdef versehen. So läuft es auch auf ideone
-
Das heißt, is_array muss auch eine Spezialisierung für alle solche unvollständigen Array-Typen haben
Dachte, dass unvollstaendige Typen keine Templateparameter sein koennen ... ?
-
knivil schrieb:
Das heißt, is_array muss auch eine Spezialisierung für alle solche unvollständigen Array-Typen haben
Dachte, dass unvollstaendige Typen keine Templateparameter sein koennen ... ?
Können schon. Nur führt das bei Templates der Standardbibliothek zu undefiniertem verhalten, es sei denn, die betreffende Komponente der Standardbibliothek macht explizit eine Ausnahme. Für (einige) type_traits ist das der Fall.
-
knivil schrieb:
Das heißt, is_array muss auch eine Spezialisierung für alle solche unvollständigen Array-Typen haben
Dachte, dass unvollstaendige Typen keine Templateparameter sein koennen ... ?
Das Zitat hab' ich schon vor einer Weile gepostet - erinnerst du dich?
Sone schrieb:
JETZT hab ich dich!
[temp.arg.type]/2 schrieb:
A template type argument may be an incomplete type
-
kleines Update: gcc-4.8.1 und ein aktueller 4.9er-Snapshot kommen mit meinem Code ohne Probleme zurecht.
und 4.8 erzeugt auch bessere Fehlermeldungen