Eigen :: सरणी क्या है (Eigen :: Array नहीं)
मैं eigen टेंसर लाइब्रेरी का उपयोग कर रहा हूं और यह मुझे लगता है कि फेरबदल () विधि इनपुट के रूप में एक वस्तु चाहता है Eigen :: सरणी <प्रकार, int>।
मेरे कार्यान्वयन में मेरे पास एक std है: int की सूची मुझे फेरबदल करने के लिए पास करने की आवश्यकता है (निश्चित रूप से मैं दूसरे इंटम पैराम (रैंक) को केवल रनटाइम पर जानता हूं!)
जवाब
कुछ समय पहले Eigen का Tensor मॉड्यूल C ++ 03 संगत था। इसका मतलब है कि std::arrayउपलब्ध नहीं है। उस कारण से Tensor मॉड्यूल ने अपने स्वयं के Eigen::arrayवर्ग को परिभाषित किया जो वास्तव में std::arrayC ++ 11 उपलब्ध होने के लिए एक टाइपराइफ है।
फ़ाइल असमर्थित / Eigen / CXX11 / src / उपयोग / 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 संगतता को गिरा दिया है और इस कोड के कुछ हिस्सों को शायद हटाया जा सकता है।