我正在使用boost :: array,其格式为<char,const std :: size_t>
void test(const std::size_t XXX)
{
boost::shared_ptr<boost::array<unsigned char, XXX>> buf(new boost::array<unsigned char, max_size>);
.
.
.
};
test(100);
test(20);
Run Code Online (Sandbox Code Playgroud)
这是领先的
错误:
错误C2971:'boost :: array':模板参数'N':'size':局部变量不能用作非类型参数
你能给我一个如何传递boost :: array第二个参数的提示吗?
谢谢
模板在编译期间被实例化,因此在程序运行之前必须知道它们的参数.
这意味着您不能将变量用作模板参数.这样的参数必须是常量表达式(常量变量不够),具有外部链接的函数或对象的地址,或静态类成员的地址.