gpt4 book ai didi

c++ - C++ 中的模板和常量

转载 作者:太空狗 更新时间:2023-10-29 20:29:41 25 4
gpt4 key购买 nike

我有以下模板:

#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。

我真的不明白这个错误,谁能给我解释一下?

最佳答案

模板类是在编译时创建的,因此必须在编译时知道该值。如果它不是 const,则直到运行时才知道,因此编译器无法创建模板类。

关于c++ - C++ 中的模板和常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com