C++がテンプレートをどのようにインスタンス化するのか混乱します。私は、コードの一部を持っている:ここでは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;
}
は私の質問です:
1.配列ABCのサイズは(パラメータARRAYSIZEを)TEST1に渡されない方法は?
2. C++コンパイラは、2つのテンプレートのTの種類をどのようにして決定しますか?テンプレートパラメータは、コンパイル時に解決されているので
示して?第二のものは全く意味をなさない。あなたは 'test2'という関数を持っていて、それを配列のように索引付けしていますか? –
Shahbaz