O que é um Eigen :: array (não Eigen :: Array)
Estou usando a biblioteca de tensores eigen e me parece que o método shuffle () quer como entrada um objeto Eigen :: array <type, int>.
Em minha implementação, tenho uma std :: list de int que preciso passar para embaralhar (é claro que conheço o segundo parâmetro int (a classificação) apenas em tempo de execução!
Respostas
Não muito tempo atrás, o módulo Tensor de Eigen era compatível com C ++ 03. Isso significa que std::arraynão está disponível. Por esse motivo, o módulo Tensor definiu sua própria Eigen::arrayclasse que é na verdade um typedef para std::arrayse C ++ 11 estiver disponível.
O arquivo não suportado / Eigen / CXX11 / src / util / EmulateArray.h contém algo que se resume a (pseudo-código)
#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
O módulo Tensor eliminou a compatibilidade com C ++ 03 e partes deste código provavelmente podem ser removidas.