मुझे चिंता है कि कर्नेल भूमि में मुझे std::move
, std::forward
, std::initializer_list
इत्यादि जैसी चीज़ों तक पहुंच नहीं होगी। हालांकि इनमें से कुछ सुविधाएं भाषा में बनाई गई हैं, फिर भी उन्हें उचित शीर्षलेख और पुस्तकालय कार्यान्वयन की आवश्यकता है। क्या चालान अर्थशास्त्र का लाभ उठाने के लिए निम्नलिखित पर्याप्त है, या क्या मुझे पूर्ण नौ गज की दूरी तय करने और सी ++ लाइब्रेरी बंद करने की आवश्यकता है?क्या मुझे अपने कर्नेल में std :: move पोर्ट करने की आवश्यकता है?
template <typename T>
typename remove_reference<T>::type&& move(T&& arg)
{
return static_cast<typename remove_reference<T>::type&&>(arg);
}
फ्रीस्टैंडिंग कार्यान्वयन में अभी भी '' होना चाहिए (और ऐसा कुछ नहीं है जिसे आप स्वयं को कोड कर सकते हैं क्योंकि यह संकलक कार्यान्वयन से घनिष्ठ रूप से जुड़ा हुआ है)। 'std :: move' और' std :: forward' आपको स्वयं को कोड करना पड़ सकता है, लेकिन वे केवल सुंदर हैं। अर्थशास्त्र की जरूरतों को ले जाएं (1) कंपाइलर समर्थन और (2) चाल-जागरूक प्रकार। यदि आप सी ++ 03 'std :: वेक्टर' कार्यान्वयन का उपयोग कर रहे हैं, तो आपको 'std :: move' और एक C++ 11 कंपाइलर के साथ भी अर्थशास्त्र को स्थानांतरित नहीं किया जाएगा। –
@ टी.सी. जानकारी के लिए धन्यवाद। Os-dev के लिए – Rigby
+1, जैसा कि मैं करता हूं> o < – ikh