#include void f( int ) { std::cout << "int, "; } void f( void * ) { std::cout << "void *, "; } template< typename T > void f( T ) = delete; int main() { int a; void *b; long c; f( a ), f( b ), f( c ); }