Jestem zdezorientowany tym, jak szablon tworzenia instancji C++. Mam kawałek kodu:Utworzenie szablonów w 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;
}
Oto moje pytania:
1. W jaki sposób wielkość tablicy ABC jest przekazywany do test1 (z arraySize parametrów)?
2. W jaki sposób kompilator C++ określa typ T w dwóch szablonach?
Masz na myśli coś takiego jak 'test1 (abc)'? Drugi nie ma sensu. Masz funkcję 'test2 ' i indeksujesz ją tak, jakby była tablicą ?! –
Shahbaz