Co to jest Eigen :: array (nie Eigen :: Array)
Używam biblioteki tensorów własnych i wydaje mi się, że metoda shuffle () chce jako dane wejściowe obiektu Eigen :: array <type, int>.
W mojej implementacji mam std :: list of int, które muszę przekazać do shuffle (oczywiście znam drugi parametr int (rangę) tylko w czasie wykonywania!)
Odpowiedzi
Niedawno moduł Tensor firmy Eigen był kompatybilny z C ++ 03. Oznacza std::arrayto, że nie jest dostępny. Z tego powodu moduł Tensor zdefiniował własną Eigen::arrayklasę, która w rzeczywistości jest definicją typu, std::arrayjeśli C ++ 11 jest dostępny.
Plik unsupported / Eigen / CXX11 / src / util / EmulateArray.h zawiera coś, co sprowadza się do (pseudokod)
#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
Moduł Tensor utracił zgodność z C ++ 03 i prawdopodobnie część tego kodu mogłaby zostać usunięta.