我知道整数类型的非类型模板参数必须是 const 表达式,所以:
template <int E>
class cat
{
public:
int array[E];
};
int main()
{
cat<4> ob; // ??
}
从我读过的内容来看,只有用表达式const
初始化的变量是表达式。在这个例子中,我们有,所以不会是一个表达式。const
const
int E = 4;
E
const
那么为什么不cat<4> ob;
抛出错误呢?我在这里错过了什么吗?如果在编译时不知道
如何int array[E];
创建?E