Iterator initilalisierungs Fehler



  • Kann mir jemand sagen wie ich den Fehler beheben kann?#
    (mChildren ist so definiert "std::vector<Ptr> mChildren")
    (Ptr ist ein typedef zu "std::unique_ptr<SceneNode> Ptr")

    for(std::vector<Ptr>::iterator it = mChildren.begin(); it != mChildren.end(); it++)
    {
        (*it)->draw(target, states);
    }
    

    Ich kann nichts mit den Fehlermeldungen anfangen.
    Error 1 error C2440: 'initializing' : cannot convert from 'std::_Vector_const_iterator<_Myvec>' to 'std::_Vector_iterator<_Myvec>'



  • Du bist wahrscheinlich in einer const-Memberfunktion. Benutze std::vector<Ptr>::const_iterator statt std::vector<Ptr>::iterator.

    BTW ist das wirklich C++/CLI? Sieht nach normalen C++ aus.



  • for(auto it = mChildren.begin(); it != mChildren.end(); it++) 
    { 
        (*it)->draw(target, states); 
    }
    

Anmelden zum Antworten