000
26.10.2003, 19:35 Uhr
(un)wissender
Niveauwart
|
Ich habe Probleme zu verstehen was ich hier tue und warum es falsch ist.
| C++: |
template<typename valuetype> class Functor { private: typedef bool (*cmp)(const valuetype &, const valuetype & ); cmp func; //Kann man das so machen? public: Functor(bool (*cmp)(const valuetype &, const valuetype & )) : func(cmp) {} bool operator()(const valuetype &elem_one, const valuetype &elem_two) const { return func(elem_one, elem_two); } }; //Geht sowas überhaupt? template<typename iter, typename std::iterator_traits<iter>::value_type> void sort(iter start, iter end, bool (*cmp)(const value_type &, const value_type & )) { Functor tor(cmp)//Wie übergebe ich den Funktionspointer richtig? }
|
Zeil des Ganzen ist es, einen Pointer auf eine Funktion in einem Funktionenobjekt zu kapseln. -- Wer früher stirbt ist länger tot. Dieser Post wurde am 26.10.2003 um 19:36 Uhr von (un)wissender editiert. |