"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > प्रारंभिक C++11 ड्राफ्ट में डिफॉल्ट मूव कार्यान्वयन अनुपस्थित क्यों थे?

प्रारंभिक C++11 ड्राफ्ट में डिफॉल्ट मूव कार्यान्वयन अनुपस्थित क्यों थे?

2024-11-19 को प्रकाशित
ब्राउज़ करें:249

Why Were Default Move Implementations Absent in Early C  11 Drafts?

डिफ़ॉल्ट मूव कार्यान्वयन प्रारंभिक सी 11 ड्राफ्ट से अनुपस्थित क्यों हैं?

सी 11 मानक के शुरुआती संस्करणों में, मूव कंस्ट्रक्टर और असाइनमेंट ऑपरेटरों की अंतर्निहित पीढ़ी एक थी बहस का विषय. इससे बाद के ड्राफ्ट में बदलाव हुए, जिसके परिणामस्वरूप वर्तमान में उपलब्ध कंपाइलरों में निम्नलिखित व्यवहार हुआ:

इम्प्लिसिट मूव सिमेंटिक्स

सी स्टैंडर्ड (एन3225) के नवंबर रिलीज के बाद से, इंप्लिसिट मूव कंस्ट्रक्टर और असाइनमेंट ऑपरेटरों को निम्नलिखित शर्तों के तहत उत्पन्न किया जा सकता है:

  • कक्षा में उपयोगकर्ता द्वारा घोषित कोई प्रति नहीं है कंस्ट्रक्टर।
  • क्लास में कोई उपयोगकर्ता-घोषित कॉपी असाइनमेंट ऑपरेटर नहीं है।
  • क्लास में कोई उपयोगकर्ता-घोषित मूव असाइनमेंट ऑपरेटर नहीं है।
  • क्लास में कोई उपयोगकर्ता-घोषित कॉपी असाइनमेंट ऑपरेटर नहीं है। .
  • मूव कंस्ट्रक्टर को स्पष्ट रूप से हटाए गए के रूप में परिभाषित नहीं किया जाएगा।

समझाते हुए प्रारंभिक ड्राफ्ट में अनुपस्थिति

प्रारंभिक ड्राफ्ट में डिफॉल्ट मूव कंस्ट्रक्टर/असाइनमेंट कार्यान्वयन को शामिल नहीं करने का निर्णय भ्रम और अप्रत्याशित व्यवहार की संभावना के बारे में चिंताओं का परिणाम था। हालाँकि, बाद के संशोधनों ने अंतर्निहित चाल पीढ़ी के लिए शर्तों को कड़ा करके इन चिंताओं को संबोधित किया है। , आप [GManNickG के मैक्रो](https://stackoverflow.com/a/12316884/8674521) का उपयोग कर सकते हैं। यह मैक्रो आपकी कक्षा के लिए आवश्यक मूव सिमेंटिक्स उत्पन्न करता है।

मूव सिमेंटिक्स लागू करके, आप एक स्वैप सदस्य फ़ंक्शन प्रदान करने से भी ऑप्ट आउट कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3