Что такое Eigen :: array (не Eigen :: Array)

Sep 02 2020

Я использую библиотеку собственного тензора, и мне кажется, что метод shuffle () хочет в качестве входных данных объект Eigen :: array <type, int>.

В моей реализации у меня есть std :: list из int, который мне нужно передать для перемешивания (конечно, я знаю второй параметр int (ранг) только во время выполнения!)

Ответы

3 dtell Sep 02 2020 at 01:17

Не так давно модуль Eigen Tensor был совместим с C ++ 03. Это означает, что std::arrayэто недоступно. По этой причине модуль Tensor определил свой собственный Eigen::arrayкласс, который фактически является typedef, std::arrayесли доступен C ++ 11.

Файл неподдерживаемый / Eigen / CXX11 / src / util / EmulateArray.h содержит что-то, что сводится к (псевдокоду)

#if C++11 not available
  // Define a custom std::array like Eigen::array class
#else
  template <typename T, std::size_t N> using array = std::array<T, N>;
#endif

Модуль Tensor отказался от совместимости с C ++ 03, и некоторые части этого кода, вероятно, можно было бы удалить.