【发布时间】:2011-09-20 11:26:00
【问题描述】:
我对 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 的大小如何传递给 test1 (参数 arraySize )?
2. C++编译器如何判断两个模板中T的类型?
【问题讨论】:
-
你的意思是
test1<int, 5>(abc)?第二个完全没有意义。你有一个函数test2<T>并且你正在索引它,就好像它是一个数组一样?!