初期化するサイズは、型とは関係ありません。したがって:
// this makes things easier!
typedef boost::numeric::ublas::matrix<double> matrix_type;
// this is the type (no initialization)
matrix_type arrayM[arraySize];
問題は、配列の初期化に伴います。あなたはこれを行うことはできません:
TheClass::TheClass() :
arrayM(1, 3) // nope
{}
代わりに、デフォルトで構築してから、すべてのサイズを変更する必要があります。
TheClass::TheClass()
{
std::fill(arrayM, arrayM + arraySize, matrix_type(1, 3));
}
ブーストを使用しているboost::arrayので、より良い構文が得られるため、 の使用を検討してください。
typedef boost::numeric::ublas::matrix<double> matrix_type;
typedef boost::array<matrix_type, arraySize> matrix_array;
matrix_array arrayM; // ah
TheClass::TheClass()
{
arrayM.assign(matrix_type(1, 3));
}