引数のないコンストラクターが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 を使用する簡単な方法はありますか?