Почему я могу инициализировать регулярную матрицу Boost, как скалярную матрицу?

Почему это работает? Этого нет нигде в документации …

#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>

int main()
{

boost::numeric::ublas::matrix<double> twoByTwoMat(2,2,-2);

std::cout << "This is the matrix: " << twoByTwoMat << std::endl;

return 0;
}

Выход:

This is the matrix: [2,2]((-2,-2),(-2,-2))

3

Решение

Это определено в <boost/numeric/ublas/matrix.hpp> заголовочный файл

matrix (size_type size1, size_type size2, const value_type &init):
matrix_container<self_type> (),
size1_ (size1), size2_ (size2), data_ (layout_type::storage_size (size1, size2), init) {
}
5

Другие решения

Других решений пока нет …