こんなことはできない?
template<typename T> type
{
  typedef T type;
};

template<typename T>
inline type<void (*)(T)>::type select_f {return f;}