c++ - Does `const &&` bind to all prvalues (and xvalues)? -


सी ++ मानक निम्न कार्यों को नष्ट कर देता है;

  टेम्पलेट & lt; class T & gt; शून्य रेफरी (कॉन्स्ट टी एंड amp;) = हटाना; टेम्पलेट & lt; कक्षा T & gt; शून्य क्रेफ (कॉन्स्ट टी एंड amp;) = हटाना;   

यह सुनिश्चित करने में सहायता करना है कि अस्थायी मूल्यों (रैवल्यूज़) को बाध्य करने से इन्हें अस्वीकृत करने से कार्यों का दुरुपयोग नहीं किया जाता है।

  • const & Amp; amp; amp; & amp; amp; सभी rvalues ​​के लिए बाध्य, विशेष रूप से?
  • const और amp; amp; सभी "ले जाया गया ऑब्जेक्ट" से बाइंड करें (xvalues; std :: move या समान)?

    मुझे लगता है कि यह चाहिए, लेकिन मेरे पास इसके लिए कोई "सबूत" नहीं है।

    • या इसके विपरीत, क्या ऐसे मामले हैं जहां एक रैवल्यू (प्राइव्यू या एक्सवेल्यू) const और amp; से बाध्य नहीं होगा?
      • यदि हां, तो ऐसा कैसे?

        नोट: टिप्पणियों से कुछ स्पष्टता, यह प्रश्न क्लासिक रैवल्यू, मूल्य वर्ग

        टी const & amp; प्रकार के rvalues ​​के लिए बाध्य कर सकते हैं T या const T

        से 8.5.3 [dcl.init.ref] पैराग्राफ 5:

        5 - प्रकार "cv1 T1" टाइप करने के लिए एक प्रकार का "cv2 T2" प्रकार की अभिव्यक्ति द्वारा प्रारंभ किया गया है: [...]
        एक ???? अन्यथा, [...] संदर्भ एक रैवल्यू संदर्भ होगा। [...]
        एक ???? यदि प्रारंभकर्ता अभिव्यक्ति - ??? एक एक्सवेल्यू, क्लास प्राइवल्यू, सरणी प्राइव्यू या फ़ंक्शन लैवल्यू और "सीवी 1 टी 1" संदर्भ-संगत "सीवी 2 टी 2" के साथ है [...] तो संदर्भ प्रारंभिक अभिव्यक्ति के मूल्य के लिए बाध्य है [...]

        यदि प्रारंभकर्ता अभिव्यक्ति गैर-वर्ग प्रकार का प्राइवल है, तो संदर्भ बाध्यकारी (ibid) के लिए एक अस्थायी प्रतिलिपि बनाई गई है।

        संदर्भ-संगतता को 8.5 में परिभाषित किया गया है। 3p4; इसके लिए एक समान-या-बेस-क्लास रिश्ते और समान-या-अधिक सीवी योग्यता की आवश्यकता होती है।

        ऐसा करने के लिए T const & amp; में बाइंड करने के लिए एक रेंज, इसकी सीवी- योग्यता const से अधिक नहीं होनी चाहिए।

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -