テンプレートのインスタンス化時にテンプレート引数のタイプを見つけるにはどうすればよいですか?たとえば、次のテンプレートを引数に応じて2つの異なる関数にインスタンス化したいと思います。
template <typename T> void test(T a) {
if-T-is-int {
doSomethingWithInt(a);
} else {
doSomethingElse(a);
}
}
でインスタンス化するとint
、結果の関数は次のようになります。
void test(int a) { doSomethingWithInt(a); }
float
たとえば、インスタンス化すると、次のようになります。
void test(float a) { doSomethingElse(a); }