I notice that if I write:
template<typename T = int> void Test(T t) {};
then the following code does not compile:
auto x = Test;
However, this code does, and deduces x to be void (*x)(int t):
auto x = Test<int>;
I'm just wondering why it does not just assume the type parameter is int in the first case and treat it the same as the second one?