#include #include using namespace std; template void f(T t) { cout << "T\n"; } template <> void f(void *p) { cout << "void *\n"; } template void f(T *p) { cout << "T *\n"; } int main() { int i = 10; f(i); f(&i); f(static_cast(&i)); return EXIT_SUCCESS; }