似乎boost::multi_array<T, n>
需要T
有一个无参数的构造函数。考虑以下示例。
#include <boost/multi_array.hpp>
class ConstructorHasArguments {
ConstructorHasArguments(int arg) {};
}
int main() {
boost::multi_array<ConstructorHasArguments, 1> foo;
return 0;
}
这会导致编译错误。
no matching function for call to ‘ConstructorHasArguments::ConstructorHasArguments()
问题是,当复制构造函数boost::multi_array<T,n>
尝试为复制分配空间时,它会尝试调用T()
. 当然,我可以在我的类中添加一个无参数构造函数。但是,如果我有一个无参数构造函数没有意义的类怎么办?
当 T 没有无参数构造函数时,是否有一种简单的方法来使用 boost::multi_array ?