Ich habe zwei Template-Funktionssignaturen. Hier kann T entweder int oder doppelt sein.Funktionszeiger auf Template-Funktion
template <typename T>
Box<T> f2p(Box<T> const& box, Point<T> const& pt, Orientation o)
{
...
}
template <typename T>
Box<T> p2f(Box<T> const& box, Point<T> const& pt, Orientation o)
{
...
}
Jetzt je nach Richtung, ich möchte entweder f2p oder p2f anrufen. Ich möchte einen Funktionszeiger erstellen, der auf f2p oder p2f verweist. Wie erstelle ich einen Funktionszeiger auf eine Vorlagenfunktion? Ich möchte folgende Wirkung erzielen:
typename <template T>
Box<T> do_transformation(Box<T> const& box, ..., int dir = 0)
{
function pointer p = dir ? pointer to f2p : pointer to p2f
return p<T>(box);
}
Ich versuche, so etwas wie dieses, aber ich bekomme Fehler kompilieren:
Box<T> (*p)(Box<T>, Point<T>, Orientation) = dir ? fc2p<T> : p2fc<T>
Kann nicht glauben, dass es nicht einmal zu mir trat Auto zu benutzen. –