C++ テンプレートの概念を学習しています。以下がわかりません。
#include <iostream>
#include <typeinfo>
using namespace std;
template <typename T>
T fun(T& x)
{
cout <<" X is "<<x;
cout <<"Type id is "<<typeid(x).name()<<endl;
}
int main ( int argc, char ** argv)
{
int a[100];
fun (a);
}
私は何をしようとしていますか?
1)Tファン(T&X)
ここで x は参照であるため、「a」はポインター型に減衰しませんが、コンパイル中に次のエラーが発生します。
error: no matching function for call to ‘fun(int [100])’
非参照を試してみると、うまくいきます。私が理解しているように、配列はポインター型に崩壊しています。