move-semantics पर टैग किए गए जवाब

4
हम नकल क्यों करते हैं?
मैंने कहीं कोड देखा, जिसमें किसी ने किसी ऑब्जेक्ट को कॉपी करने का फैसला किया और बाद में इसे एक कक्षा के डेटा सदस्य के पास ले गया। इसने मुझे इस भ्रम में छोड़ दिया कि मुझे लगा कि नकल करने से बचने के लिए आगे बढ़ने का पूरा बिंदु …

8
initializer_list और शब्दार्थ को स्थानांतरित करें
क्या मुझे तत्वों को एक से बाहर जाने की अनुमति है std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } चूँकि std::intializer_list<T>विशेष संकलक ध्यान देने की आवश्यकता होती है और इसमें C ++ …

5
क्या मैं केवल-केवल प्रकार के वेक्टर की सूची बना सकता हूं?
अगर मैं अपने GCC 4.7 स्नैपशॉट के माध्यम से निम्न कोड पास करता हूं, तो यह unique_ptrवेक्टर में s को कॉपी करने की कोशिश करता है । #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } जाहिर है कि std::unique_ptrनकल …

3
वेक्टर बढ़ने पर शब्दार्थ को कैसे लागू करें?
मेरे पास एक std::vectorनिश्चित वर्ग की वस्तुएं हैं A। वर्ग गैर-तुच्छ है और इसमें कॉपी बिल्डरों और स्थानांतरित कंस्ट्रक्टरों को परिभाषित किया गया है। std::vector<A> myvec; यदि मैं वेक्टर को Aऑब्जेक्ट्स (उदाहरण के लिए myvec.push_back(a)) का उपयोग करके भरता हूं , तो वेक्टर आकार में बढ़ेगा, A( const A&)वेक्टर में …

4
कोई डिफ़ॉल्ट चाल-असाइनमेंट / चाल-निर्माणकर्ता क्यों नहीं?
मैं एक साधारण प्रोग्रामर हूं। मेरे वर्ग के सदस्य सबसे अधिक बार POD- प्रकार और STL- कंटेनर से बने होते हैं। इसके कारण मुझे शायद ही कभी असाइनमेंट ऑपरेटर्स या कॉपी कंस्ट्रक्टर्स को लिखना पड़े, क्योंकि ये डिफ़ॉल्ट रूप से लागू होते हैं। इसे जोड़ें, अगर मैं std::moveवस्तुओं पर उपयोग …

2
पहले से निर्मित वस्तुओं के लिए C ++ 11 push_back () std के साथ कदम: emplace_back () की क्षमता
C ++ 11 emplace_back()में आम तौर पर पसंद किया जाता है (दक्षता के संदर्भ में) push_back()क्योंकि यह इन-प्लेस निर्माण की अनुमति देता है, लेकिन क्या यह अभी भी मामला है जब push_back(std::move())पहले से निर्मित वस्तु के साथ उपयोग किया जाता है? उदाहरण के लिए, emplace_back()अभी भी निम्नलिखित मामलों में पसंद …

3
स्थानांतरित कंटेनर का पुन: उपयोग करना?
स्थानांतरित कंटेनर का पुन: उपयोग करने का सही तरीका क्या है? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); मैंने C ++ 0x मानक ड्राफ्ट में जो पढ़ा है, …

4
Std से संसाधनों की चोरी :: मानचित्र की कुंजी की अनुमति है?
C ++ में, क्या संसाधनों को किसी नक्शे से चोरी करना ठीक है जिसे मुझे बाद में ज़रूरत नहीं है? दरअसल, मैं एक है मान std::mapके साथ std::stringकुंजी और मैं एक वेक्टर के संसाधनों चोरी से इसे से बाहर का निर्माण करना चाहते हैं mapका उपयोग कर रों चाबियाँ std::move। …
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.