Приведенный ниже код не компиляется. Объясните пожалуйста, почему не происходит правильного выбора подходящей функции (как например в случае отстутвия шаблонов). Спасибо.
void fun( int ) {}
template< void( *func )( int ) >
void f( int ) {}
template< void( *func )( int* ) >
void f( int* ) {}
int main()
{
f<&fun>( 1 );
}