Я думаю единственный предел, который должен быть применен, похож на предел буквы 2000 года или что-то еще insainly высоко, но только ограничить размер базы данных, если это - выпуск
Перед назначением необходимо изменить размер m_f
. Это могло бы выглядеть следующим образом:
void set_f(boost::multi_array<short, 2> &f) {
std::vector<size_t> ex;
const size_t* shape = f.shape();
ex.assign( shape, shape+f.num_dimensions() );
m_f.resize( ex );
m_f = f;
}
Может быть, есть способ получше. Преобразование short
в char
будет неявным. Вам следует рассмотреть возможность использования std :: transform
, если вы хотите явное преобразование.