Ich habe eine C ++ Funktion wie
%Vor% Nun möchte ich eine Variable erstellen, die einen Zeiger auf f
enthält. Diese Variable sollte den richtigen Typ haben ( int (*)( const std::string &, double )
- aber ich möchte diesen Typ nicht explizit ausschreiben. Ich möchte ihn aus f
ableiten, damit ich die Typ-Signatur nicht wiederhole Ich würde gerne etwas schreiben in der Art von:
Um dies zu erreichen, habe ich versucht, so etwas zu tun:
%Vor% Meine Hoffnung war, dass vielleicht der Rückgabetyp einer Funktion ( deduceType
, in diesem Fall) als Vorlagenargument verwendet werden könnte, aber ach - es scheint, dass Sie das nicht können.
Weiß jemand, wie man das macht? Ich suche eine C ++ 03 Lösung.
C ++ 0x hinzugefügt decltype was macht was du willst (wenn ich es richtig verstanden habe).
Eine andere Option könnte Boost :: Typeof sein, die bereitgestellt werden soll die gleiche Funktionalität bis declltype in allen Compilern unterstützt wird.
Sie könnten Ihre Variable wie folgt deklarieren:
%Vor% Hier ist FuncPtr Ihre Variable. und Sie können es verwenden wie: int result = FuncPtr(str, d);
, sofern FuncPtr nicht NULL ist. Dafür könntest du tun:
Besser typedef verwenden. Sie können typedef name statt der gesamten Funktionssignatur wiederholen.
In den meisten Fällen ist typeof keine gute Idee, auch wenn Sie es tun können.
%Vor%