#include using namespace std ; //-------------------------------------------------------- template void f1(T param) { cout << "param:" << param << " " << typeid(T).name() << " " << typeid(param).name() << endl ; (*param)++ ; //Allowed } //-------------------------------------------------------- int main() { int x1 = 27; // x is an int //T is int* and param is int* int* ptr1 = &x1 ; f1( ptr1 ) ; cout << *ptr1 << endl ; return 0 ; } //--------------------------------------------------------