我有兩個模板函數簽名。這裏T可以是int或者double。模板函數指針
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)
{
...
}
現在取決於方向,我想調用f2p或p2f。我想創建一個指向f2p或p2f的函數指針。如何創建指向模板化函數的函數指針?我想達到以下效果:
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);
}
我嘗試這樣的事情,但我得到的編譯錯誤:除非你需要pointer
別的東西
Box<T> (*p)(Box<T>, Point<T>, Orientation) = dir ? fc2p<T> : p2fc<T>
不能相信它甚至沒有想到要使用自動。 –