【发布时间】:2012-02-13 11:30:16
【问题描述】:
我有以下模板:
#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 或 const-literal。
我真的不明白这个错误,谁能给我解释一下?
【问题讨论】:
-
在您最喜欢的 C++ 书籍中查找“常量表达式”。