Estoy confundido por cómo la plantilla de creación de instancias de C++. Tengo un trozo de código:Creación de instancias de plantillas en C++
template <class T, int arraySize>
void test1(T (&array)[arraySize])
{
cout << typeid(T).name() << endl;
}
template<class T>
void test2(T &array)
{
cout << typeid(T).name() << endl;
}
int main()
{
int abc[5];
test1(abc);
test2(abc);
return 0;
}
Aquí están mis preguntas:
1. ¿De qué manera el tamaño de la matriz de ABC se pasa a test1 (el parámetro arraysize)?
2. ¿Cómo determina el compilador C++ el tipo de T en las dos plantillas?
¿Quieres decir algo como 'test1 (abc)'? El segundo no tiene ningún sentido. Usted tiene una función 'test2 ' y la está indexando como si fuera una matriz ?! –
Shahbaz