binary_function base class undefined



  • Hi,
    ich versuche gerade ein VS6.0 Projekt in ein VS2005 Projekt zu konvertieren.

    Ich hänge nun bei einem struct indem ich den Fehler nicht sehen kann.

    template<typename T>
    struct NameSorter: public binary_function<T, T, bool>
    {
    	bool operator () (const T &a, const T &b) const
    	{
    		return a.name < b.name;
    	}
    };
    

    Ich habe den 'algorithm' header included und ich habe auch den namespace 'std' gesetzt. Trotzdem bekomme ich diese Fehlermeldung:

    1>c:\work\markus\vc2005projects\stormtest\editor\explosion_scripts.cpp(54) : error C2504: 'binary_function' : base class undefined
    1> c:\work\markus\vc2005projects\stormtest\editor\explosion_scripts.cpp(60) : see reference to class template instantiation 'editor::`anonymous-namespace'::NameSorter<T>' being compiled
    1>c:\work\markus\vc2005projects\stormtest\editor\explosion_scripts.cpp(54) : error C2143: syntax error : missing ',' before '<'

    Hat jemand eine Idee?



  • Staati schrieb:

    Ich habe den 'algorithm' header included und ich habe auch den namespace 'std' gesetzt.

    Falscher Header - die STL-Funktorklassen stehen im Header <functional>



  • Ah, danke!
    Hat sich das geändert? Wundert mich grad etwas, weil das unter VS6.0 funktioniert hat..



  • Eigentlich nicht - die waren schon immer in der <functional> (es kann höchstens sein, daß die <algorithm> beim VC6 diese Datei irgendwo benötigt - und deshalb mit eingebunden - hat).


Anmelden zum Antworten