【发布时间】:2012-05-08 15:54:48
【问题描述】:
我正在使用具有格式的 boost::array
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);
这是领先
到错误:
错误 C2971: 'boost::array' : 模板参数 'N' : 'size' : 局部变量不能用作非类型参数
你能告诉我如何传递 boost::array 第二个参数吗?
谢谢
【问题讨论】:
-
或者就此而言
vector<unsigned char>- 从代码的外观来看,我猜想buf的寿命不会超过对test的调用,因此不需要共享所有权.唯一的方法是test将其存储到某个长期存在的对象(如全局对象,或者this如果test是成员函数)。