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

12
चाल शब्दार्थ क्या है?
मैंने अभी C ++ 0x के बारे में स्कॉट मेयर्स के साथ सॉफ्टवेयर इंजीनियरिंग रेडियो पॉडकास्ट साक्षात्कार को सुनना समाप्त कर दिया है । अधिकांश नई विशेषताओं ने मुझे समझ में आया, और मैं वास्तव में C ++ 0x के बारे में उत्साहित हूं, एक के अपवाद के साथ। मुझे …

7
push_back बनाम emplace_back
मैं push_backऔर के बीच के अंतर के बारे में थोड़ा उलझन में हूँ emplace_back। void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); जैसा कि एक push_backअधिभार एक संदर्भ संदर्भ ले रहा है मैं काफी नहीं देखता कि क्या उद्देश्य emplace_backबन जाता है?


6
C ++ 11 rvalues ​​और चाल अर्थ विज्ञान भ्रम (वापसी विवरण)
मैं rvalue संदर्भों को समझने और C ++ 11 के शब्दार्थ को स्थानांतरित करने की कोशिश कर रहा हूं। इन उदाहरणों में क्या अंतर है, और उनमें से कौन सी कोई वेक्टर कॉपी नहीं करने जा रहा है? पहला उदाहरण std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> …

3
"इस" के लिए "संदर्भ क्या है?"
एक प्रस्ताव के पार आया, जिसे "क्लैग के सी ++ 11 स्टेटस पेज " में "इस" के लिए रेवल्यू रेफरेंस कहा जाता है । मैंने संदर्भों के संदर्भ में काफी कुछ पढ़ा है और उन्हें समझा है, लेकिन मुझे नहीं लगता कि मुझे इस बारे में पता है। मुझे शर्तों …

2
क्या आधुनिक C ++ आपको मुफ्त में प्रदर्शन दे सकता है?
कभी-कभी यह दावा किया जाता है कि C ++ 11/14 केवल C ++ 98 कोड को संकलित करने पर भी आपको एक प्रदर्शन को बढ़ावा मिल सकता है। औचित्य आम तौर पर चाल शब्दार्थों की तर्ज पर होता है, क्योंकि कुछ मामलों में रूवल निर्माणकर्ता स्वचालित रूप से उत्पन्न होते …

6
मैं std क्यों करूँगा :: एक std ले जाएँ :: साझा किया गया?
मैं क्लैंग स्रोत कोड के माध्यम से देख रहा हूं और मुझे यह स्निपेट मिला: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } मैं क्यों std::moveएक करना चाहते हैं std::shared_ptr? क्या साझा संसाधन पर स्वामित्व स्थानांतरित करने का कोई बिंदु है? मैं इसके बजाय ऐसा क्यों नहीं करूंगा? void …

2
मैं स्थानांतरित वस्तु से क्या कर सकता हूं?
क्या मानक ठीक से परिभाषित करता है कि एक वस्तु को एक बार ले जाने के बाद मैं क्या कर सकता हूं? मैं सोचता था कि आप एक स्थानांतरित वस्तु से क्या कर सकते हैं क्या यह विनाश है, लेकिन यह पर्याप्त नहीं होगा। उदाहरण के लिए, swapमानक लाइब्रेरी में …

6
मैं एक std :: unique_ptr सदस्य के साथ कस्टम डिलेटर का उपयोग कैसे करूँ?
मेरे पास एक Unique_ptr सदस्य है। class Foo { private: std::unique_ptr<Bar> bar; ... }; बार एक तृतीय पक्ष वर्ग है जिसमें एक बनाएँ () फ़ंक्शन और एक नष्ट () फ़ंक्शन होता है। अगर मैं std::unique_ptrएक स्टैंड फंक्शन में इसके साथ उपयोग करना चाहता था तो मैं कर सकता था: void …

2
`Std :: Move` को` std :: Move` नाम क्यों दिया गया है?
C ++ 11 std::move(x)फ़ंक्शन वास्तव में कुछ भी स्थानांतरित नहीं करता है। यह आर-वैल्यू के लिए सिर्फ एक कास्ट है। ऐसा क्यों किया गया? क्या यह भ्रामक नहीं है?

4
C ++ 11 में एक प्रकार की गैर-चल को कब बनाया जाए?
मुझे आश्चर्य हुआ कि यह मेरे खोज परिणामों में नहीं दिखा, मुझे लगा कि किसी ने पहले यह पूछा होगा, सी ++ 11 में चाल शब्दार्थ की उपयोगिता को देखते हुए: मुझे C ++ 11 में एक कक्षा को गैर-चल बनाने योग्य बनाने के लिए कब (या यह मेरे लिए …

1
उधार ली गई सामग्री से बाहर नहीं जा सकते / साझा संदर्भ के पीछे नहीं हट सकते
मैं त्रुटि नहीं समझता cannot move out of borrowed content। मैंने इसे कई बार प्राप्त किया है और मैंने हमेशा इसे हल किया है, लेकिन मैंने कभी नहीं समझा कि क्यों। उदाहरण के लिए: for line in self.xslg_file.iter() { self.buffer.clear(); for current_char in line.into_bytes().iter() { self.buffer.push(*current_char as char); } println!("{}", …

6
असाइनमेंट ऑपरेटर और `if (यह! = & Rhs)` को स्थानांतरित करें
एक वर्ग के असाइनमेंट ऑपरेटर में, आपको आमतौर पर यह जांचने की आवश्यकता होती है कि ऑब्जेक्ट असाइन किया जा रहा है या नहीं, तो आप इसे खराब नहीं करेंगे। Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } क्या आपको …

3
छोरों के लिए रेंज-आधारित में अग्रेषण संदर्भों का उपयोग करने का क्या फायदा है?
const auto&यदि मैं केवल-पढ़ने के लिए ऑपरेशन करना चाहता हूँ तो पर्याप्त होगा। हालाँकि, मैं टकरा गया हूँ for (auto&& e : v) // v is non-const हाल ही में एक दो बार। इससे मुझे आश्चर्य होता है: क्या यह संभव है कि कुछ अस्पष्ट कोने के मामलों में auto&या …

2
RValues ​​में std :: move () ट्रांसफर वैल्यू कैसे करता है?
मैंने सिर्फ अपने आप को तर्क के बारे में पूरी तरह से नहीं समझा std::move()। सबसे पहले, मैंने इसे googled किया, लेकिन ऐसा लगता है कि कैसे उपयोग करने के बारे में केवल दस्तावेज हैं std::move(), न कि इसकी संरचना कैसे काम करती है। मेरा मतलब है, मुझे पता है …

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.