#include <iostream>
using namespace std;
template <typename T> void compare(const T&, const T&){
cout<<"T"<<endl;
}
void compare(const char*, const char*){
cout<<"const char*"<<endl;
}
int main()
{
char a[]="123";
char b[]="123";
char *p1 = a, *p2 = b;
compare(p1,p2);
return 0;
}
結果は次のとおりです。T
しかし、なぜ?インスタンス化後、テンプレート関数は次のようになります。
compare(const char *&、const char *&)
通常の機能と同じです。そして、通常の関数を呼び出す必要があります!