expected primary-expression before '{' token



  • Hallöchen!

    Bei dem untenstehenden C++-Code bekomme ich die folgende Fehlermeldung:

    g++ -m32 -c xhtml11.cpp -o xhtml11.o
    xhtml11.cpp: In constructor `html::html(std::string, std::string)':
    xhtml11.cpp:5: error: expected primary-expression before '{' token
    make: *** [xhtml11.o] Error 1
    
    // xhtml11.cpp
    
    #include "xhtml11.hpp"
    
    html::html(string xml_lang, string xmlns) : param_element("html", { {"xmlns", xmlns}, {"xml:lang", xml_lang} }, 2)
    { }
    

    Ich vermute das liegt an der Übergabe der dynamisch erzeugten Liste. Aber was genau habe ich falsch gemacht und wie mach' ich's richtig?



  • Du kannst so eine C-Initialisierungsliste nicht als Argument an irgendwas übergeben - da benötigst du schon ein vorher definiertes Objekt (oder einen korrekten Konstruktor-Aufruf).



  • Wo ist denn param_element definiert? Fehlt vielleicht ein include?


Anmelden zum Antworten