The type of a function pointer to std::forward<int>
is int &&(*)(int &)
. So your function would look like this:
template<class T = int &&(*)(int &)>
void apply(T &&t = &std::forward<int>);
Take a look at how std::forward is declared: http://en.cppreference.com/w/cpp/utility/forward