Есть ли способ использовать определяемый пользователем скалярный тип внутри матрицы в библиотеке линейной алгебры Armadillo? Даже типа int64_t
не работает. Это простое объявление arma::Mat<int64_t> mat;
вызывает ошибку компиляции:
armadillo_bits \ arma_static_check.hpp (23): ошибка C2118: отрицательный индекс armadillo_bits \ arma_static_check.hpp (21): при компиляции функции-члена шаблона класса 'void arma :: arma_type_check_cxx1998 :: apply (void)' armadillo_bits \ mat_meat (34) : см. ссылку на создание экземпляра шаблона функции 'void arma :: arma_type_check_cxx1998 :: apply (void)', который компилируется armadillo_bits \ mat_meat.hpp (34): см. ссылку на создание экземпляра шаблона класса 'arma :: arma_type_check_cxx1998', который скомпилирован armadillo_bits \ mat_meat (17): при компиляции шаблона класса функция-член 'arma :: Mat :: ~ Mat (void)' main.cpp (156): см. Ссылку на создание экземпляра шаблона функции 'arma :: Mat :: ~ Mat (void)', являющееся скомпилированный main.cpp (156): см. ссылку на компилируемый экземпляр шаблона класса 'arma :: Mat'
Мне нужна матрица с таким настраиваемым типом не для математических операций, а просто для удобных 2-мерных массивов с операциями вставки строки / столбца, и я не хочу связывать другую библиотеку только для этих операций. Армадилло уже используется в моем проекте.
ARMA_64BIT_WORD
перед включением заголовка Armadillo. В противном случае вручную отредактируйтеinclude/armadillo_bits/config.hpp
. Пояснения к параметрам приведены в документации. - person mtall   schedule 05.02.2015