What is the difference between below syntax:
template<typename T>
struct A { ... };
A<void (*)()> o1; // <--- ok
A<void()> o2; // <----- ??
I want to know the practical use of the 2nd syntax apart from libraries (I checked that we cannot declare object of void()
inside A
). I have referred this question, but that din't help.