मैं अपने कोड में std::move
का उपयोग करने का प्रयास कर रहा हूं, लेकिन संकलक (g ++ 4.4) जिसका उपयोग मैं कर रहा हूं, इसका समर्थन नहीं करता है। boost::move
विकल्प std::move
पूरी तरह से कर सकते हैं? धन्यवाद।बूस्ट लाइब्रेरी में std :: move के समकक्ष
उत्तर
std::move
(और boost::move
जब सी ++ 0x समर्थन सक्षम है) T&
से T&&
पर केवल एक कास्ट है। यह वास्तव में कुछ भी नहीं ले जाता है। इसका मतलब है कि विशिष्ट प्रकार के पॉइंटर T&&
को कंपाइलर द्वारा समर्थित किया जाना चाहिए। जीसीसी संस्करण 4.3 के बाद से आर-वैल्यू संदर्भों का समर्थन करता है, इसलिए बूस्ट संस्करण ठीक होना चाहिए।
हालांकि, क्या कोई कारण है कि आप से std::move
का उपयोग नहीं कर सकते हैं?
http://en.cppreference.com/w/cpp/utility/move
तुम बस आदेश सीमित C++ 11 समर्थन है कि जीसीसी 4.4 गुण को सक्षम करने में एक संकलक विकल्प के रूप में -std=c++0x
निर्दिष्ट करने के लिए सुनिश्चित करने के लिए की जरूरत है।
पर जाने पर विचार करें C++ 03 'boost :: move' में यह ** केवल एक कलाकार नहीं है **: यही कारण है कि यह वहां काम करता है। "बूस्ट.मोव मैक्रोज़ पर आधारित है जो सी ++ 0x कंपाइलर्स और सी ++ 03 कंपाइलर्स में इम्यूलेटेड रावल्यू रेफरेंस क्लासेस और कनवर्ज़न ऑपरेटर में सही रावल्यू संदर्भों में विस्तारित हैं।" [बूस्ट डॉक्स] देखें (http://www.boost.org/doc/libs/1_59_0_b1/doc/html/move/how_the_library_works.html) – nugae
@nugae हाँ, आप बिल्कुल सही हैं। –
हाँ, यह कर सकते हैं
क्या Boost.Move है?
रैवल्यू संदर्भ एक प्रमुख सी ++ 0x सुविधा है, जो सी ++ मानों के लिए चाल semantics सक्षम बनाता है। हालांकि, हमें लेवल सेमेनाटिक्स का लाभ लेने के लिए सी ++ 0x कंपाइलर्स की आवश्यकता नहीं है। बूस्ट.मोव सी ++ 0 एक्स मूव सेमेन्टिक्स सी ++ 03 कंपाइलर्स में अनुकरण करता है और पोर्टेबल कोड लिखने की अनुमति देता है जो सी ++ 03 और सी ++ 0 एक्स कंपाइलर्स में काम करता है।
स्रोत: http://www.boost.org/doc/libs/1_59_0_b1/doc/html/move.html
- 1. std :: move vs std :: आगे
- 2. बूस्ट लाइब्रेरी प्रारूप; हो रही std :: स्ट्रिंग
- 3. क्या std :: move std :: string में std :: stringstream
- 4. Std :: move का उपयोग करना
- 5. बूस्ट लाइब्रेरी
- 6. बूस्ट लाइब्रेरी
- 7. बूस्ट लाइब्रेरी
- 8. बूस्ट लाइब्रेरी
- 9. std :: istream या समकक्ष
- 10. क्या std :: move ड्रॉप स्थिरता चाहिए?
- 11. std :: move आरवीओ को क्यों रोकता है?
- 12. सी ++ कक्षा सदस्य (std :: move वाक्यविन्यास)
- 13. move iterators
- 14. पायथन समकक्ष :: std :: set और std :: multimap
- 15. बूस्ट। Std :: for_each
- 16. बूस्ट ग्राफ लाइब्रेरी: संभावित बग
- 17. क्या सी # में std :: nth_element समकक्ष है?
- 18. बूस्ट
- 19. std :: move() _Remove_reference के बिना क्यों काम नहीं करता है?
- 20. बूस्ट :: डेट_टाइम लाइब्रेरी
- 21. बूस्ट ग्राफ लाइब्रेरी
- 22. बूस्ट ग्राफ लाइब्रेरी
- 23. बूस्ट सी ++ लाइब्रेरी इंस्टॉल
- 24. std :: move और unique_ptr :: रीसेट के बीच अंतर क्या हैं?
- 25. एंड्रॉइड एमजीबीओक्स 2 लाइब्रेरी समकक्ष?
- 26. बूस्ट :: ifind_first std :: स्ट्रिंग ऑब्जेक्ट्स
- 27. थ्रेड सुरक्षित unique_ptr move
- 28. बूस्ट :: डेट_टाइम और std :: chrono
- 29. सी ++ 11 में boost :: pop_polymorphic_downcast के std समकक्ष कहां है?
- 30. क्या मुझे cdors/असाइनमेंट ऑपरेटरों में std :: move या std :: आगे का उपयोग करना चाहिए?
'जी ++ 4.4' बहुत पुराना है। नए संस्करण – alexeykuzmin0