什么是 Eigen::array(不是 Eigen::Array)

What is a Eigen::array (not Eigen::Array)

我正在使用本征张量库,在我看来 shuffle() 方法需要一个对象作为输入 Eigen::array.

在我的实现中,我有一个 std::list int 需要传递给 shuffle(当然我只在运行时知道第二个 int 参数(排名)!)

不久前,Eigen 的 Tensor 模块与 C++03 兼容。这意味着 std::array 不可用。出于这个原因,Tensor 模块定义了它自己的 Eigen::array class,如果 C++11 可用,它实际上是 std::array 的类型定义。

文件 unsupported/Eigen/CXX11/src/util/EmulateArray.h 包含可归结为 (pseudo-code)

的内容
#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 兼容性,部分代码可能会被删除。