テンプレートの展開(?)はコンパイル時、「<>」で明示的に指定できる、と。
#include <iostream> #include <string> using namespace std; template <class X> void func(X &x) { cout << x << endl; } int main() { int i = 100; string s = "foo"; func(i); func<int>(i); func(s); func<string>(s); return 0; }