boost::fusion::vector in std::vector



  • Ich verstehe das Problem bei dieser Fehlermeldung nicht:

    Zuerst code:

    #include <boost/fusion/container/vector.hpp>
    #include <vector>
    
    typedef boost::fusion::vector2<const std::string, bool> InType;
       std::vector<InType> inputs;
       InType foo("aaa", true);
       inputs.push_back(foo);
    

    Das push_back knallt mit:

    Fehler 1 error C2678: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'const std::string' akzeptiert (oder keine geeignete Konvertierung möglich) boost\fusion\container\vector\detail\vector_n.hpp 57

    Die Ausgabe wirft ne Handvoll unhilfreicher Template errors.

    ist der fusion vector nicht assignable und copyable?



  • Das sollte eher an deinem "const std::string" liegen. Das heißt du kannst den wert nicht modifizieren und somit auch nichts zuweisen.



  • Ah, kappiert, danke. Wäre deutlicher, wenn das const in Anführungszeichen wäre


Anmelden zum Antworten