I have the following code snippet:
template <class T>
int foo(T (*f)()) {
typedef T (*func)();
typedef functor<T, func> F; //this line
// ...
}
As you can see, I use typedef for a function pointer (func), but I want to remove it to simplify my code. I tried this:
template <class T>
int foo(T (*f)()) {
typedef functor<T, typename f> F;
// ...
}
But that doesn't compile. What is the right way to to spell that full typedef for F in a single line?