Adresse von überladener Funktion
-
Ich experimentiere gerade ein wenig, und da wollte ich die Adresse einer überladenen Memberfunktion ermitteln und dann mit
bindverwenden. Die Lösung hierzu ist weniger offensichtlich, als ich gehofft hatte - konkret scheint das ein Loch im Standard zu sein oder so? Funktioniert das auch mit anderen Compilern als Visual C++?int Func( int i, int j ); int Func( long l ); ... // &Func geht ja nicht ohne weiteres... int (*pFunc) ( int, int ) = Func;MfG
-
Casten?
int (*pFunc) ( int, int ) = static_cast <int (*) (int, int)> (&Func);Am besten mit typedef für die Funktion.
-
Don06 schrieb:
Casten?
int (*pFunc) ( int, int ) = static_cast <int (*) (int, int)> (&Func);Am besten mit typedef für die Funktion.
Richtig. Mit casten geht das, allerdings finde ich diese Variante ziemlich unelegant - im Gegensatz zu vielen anderen Konstrukten
Ich hatte gehofft, dass man die Adresse mit Hilfe der Signatur bekommen könnte, aber wenn es nur so geht...: Got what I want...
// So gehts auch ohne cast, ist aber auch nur ein Beispiel von vielen... bind1st(mem_fun<wostream &, wostream, int>(&(wostream::operator<<)), &wcout)(7);Vielen Dank