我有以下模板:模板和const在C++
#include <iostream>
template <class T,T defaultVal, int dim=255>
class Vec
{
T _vec[dim];
int _dim;
public:
Vec() : _dim(dim)
{
for (int i=0;i<_dim;++i)
{
_vec[i] = defaultVal;
}
}
~Vec() {};
// other operators and stuff
};
int main()
{
int defValue = 0;
Vec < int,defValue > vecWithDefVal;
}
但該程序將無法編譯,因爲模板值必須在編譯時是已知的,意思是常量或const字面。
我真的不知道這個錯誤,任何人都可以解釋給我看?
在您最喜歡的C++書籍中查找「常量表達式」。 – sellibitze 2012-02-13 11:52:02