Funktionszeiger bei Überladenen Funktionen
-
Wie kann man bei zwei Funktionen gleichen Namens mit unterschiedlichen parameterlisten spezifizieren, welche man meint, wenn man einen Funktionszeiger will?
void Handler(CFoo &) { ... } void Handler(CBar &) { ... }Folgendes "drumrum" (reduziert):
template <typename T, typename Func> class CAdapter { T m_obj Func m_func; public: void DoSomething() { m_func(..); } }; template <typename T, typename Func> inline CAdapter<Func> GetAdapted(T & obj, Func f) { return CAdapter<Func>(obj, f); }(Wie) Kann ich bei
GetAdapted(Handler)angeben, welche Funktion verwendet werden soll?
-
Ich verstehe deine Frage nicht.
Bei Funktionspointern muss man immer die Parameter der Funktion mit angeben, also sehe ich keinen Konfliktbedarf bei überladenen Funktionen

-
peterchen schrieb:
(Wie) Kann ich bei
GetAdapted(Handler)angeben, welche Funktion verwendet werden soll?
In dem du (z.B. über einen static_cast) den genauen Typ mit angibst:
GetAdapted(static_cast<void (*)(CFoo&)>(Handler));