Eigen :: array คืออะไร (ไม่ใช่ Eigen :: Array)

Sep 02 2020

ฉันกำลังใช้ไลบรารีเทนเซอร์ของ eigen และสำหรับฉันแล้วดูเหมือนว่าเมธอด shuffle () ต้องการป้อนวัตถุ Eigen :: array <type, int>

ในการใช้งานของฉันฉันมีรายการ std :: int ที่ฉันต้องส่งไปสับเปลี่ยน (แน่นอนว่าฉันรู้พารามิเตอร์ int ตัวที่สอง (อันดับ) ที่รันไทม์เท่านั้น!)

คำตอบ

3 dtell Sep 02 2020 at 01:17

ไม่นานมานี้โมดูล Tensor ของ Eigen สามารถใช้งานร่วมกับ 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 และบางส่วนของรหัสนี้อาจถูกลบออก