initializer_list(gcc 4.4)



  • Moin,

    laut der folgenden Übersicht bietet der gcc ab Version 4.4 Unterstützung für initializer lists. Ich habe folgenden Programmcode für Testzwecke verwendet:

    #include <iostream>
    #include <initializer_list>
    
    class foo{
            public:
            foo(std::initializer_list<int> a){
                std::initializer_list<int>::iterator it;
                for(it = a.begin();it!=a.end();++it){
                    std::cout<<*it;
                }
            }
    };
    
    int main(){
            foo hallo = {1,2,3,4,5,6};
            return 0;
    }
    

    Und erhalte folgende Fehlermeldung:

    test.cpp:7: Fehler: »iterator« is not a member of »std::initializer_list<int>«
    

    Laut dem Working Draft sollte iterator aber sehr wohl ein Element von initializer_list sein. Ist die Implementierung dahingehend im gcc noch unvollständig oder mache ich hier etwas falsch? Ich habe noch einige Beispiele für den Einsatz von initializer_list mit dem gcc gefunden. Diese iterieren aber jeweils über einen const int* über die Elemente der initializer_list, was ich persönlich nicht soo schön fand 😉


Anmelden zum Antworten