Eigen :: array là gì (không phải Eigen :: Array)

Sep 02 2020

Tôi đang sử dụng thư viện tensor eigen và đối với tôi dường như phương thức shuffle () muốn nhập một đối tượng Eigen :: array <type, int>.

Trong quá trình triển khai của mình, tôi có một std :: danh sách int mà tôi cần chuyển để xáo trộn (tất nhiên là tôi biết tham số int thứ hai (thứ hạng) chỉ khi chạy!)

Trả lời

3 dtell Sep 02 2020 at 01:17

Cách đây không lâu, mô-đun Tensor của Eigen tương thích với C ++ 03. Điều đó ngụ ý rằng std::arraykhông có sẵn. Vì lý do đó, mô-đun Tensor đã định nghĩa Eigen::arraylớp riêng của nó mà trên thực tế là một định dạng cho std::arraynếu C ++ 11 có sẵn.

Tệp không được hỗ trợ / Eigen / CXX11 / src / using / EmulateArray.h chứa một cái gì đó tổng hợp thành (mã giả)

#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

Mô-đun Tensor đã giảm khả năng tương thích với C ++ 03 và các phần của mã này có thể bị xóa.