Gewusst wie: array an Funktion template mit Referenz

Lerne ich c++ template-Konzepte. Ich verstehe nicht die folgenden.

#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);
}

Was ich versuche?

1) T Spaß (T & x)

Hier x ist eine Referenz, und somit nicht morsch 'a' in Zeiger-Typ,
aber beim kompilieren bekomme ich den folgenden Fehler.

 error: no matching function for call to fun(int [100])’

Wenn ich versuche nicht-Referenz, es funktioniert gut. Wie ich es verstehe, wird das array verfallen in Zeiger-Typ.

InformationsquelleAutor Whoami | 2013-05-12
Schreibe einen Kommentar