§20.2.4 [declval]
'add_rvalue_reference <T> :: प्रकार' और 'टी &&' के संदर्भ में निर्दिष्ट 'अस्वीकरण' क्यों नहीं है?
template <class T>
typename add_rvalue_reference<T>::type declval() noexcept; // as unevaluated operand
क्यों यहाँ add_rvalue_reference
का उपयोग करें?
§20.9.7.2 [meta.trans.ref]
से add_rvalue_reference
पर:
तो
T
नाम एक वस्तु या समारोह प्रकार तोtype
typedef सदस्यT&&
नाम होगा; अन्यथा,type
का नामT
होगा। [नोट: यह नियम संदर्भ ढहने के अर्थशास्त्र को दर्शाता है (8.3.2)। उदाहरण के लिए, जब एक प्रकारT
एक प्रकारT1&
नाम देता है, तोadd_rvalue_reference<T>::type
टाइप करें एक रावल्यू संदर्भ नहीं है। अंत टिप्पणी]
add_rvalue_reference
के बाद से वैसे भी टूट संदर्भ प्रतिबिंबित करने के लिए, क्यों नहीं बस T&&
निम्नलिखित की तरह का उपयोग मतलब है?
template<class T>
T&& declval();
क्या गलत हो सकता है? दो संस्करणों के बीच मतभेद क्या हैं?
"संभवतः क्या गलत हो सकता है?" बत्तख! –
@ लाइटनेसरेसेसिन ऑर्बिट: एर .. क्या? सिर्फ इसलिए कि मैंने कुछ अनदेखा किया है -1 मुझे मिल रहा है? दिलचस्प सामान ... – Xeo
@ लाइटनेस अब _that_ व्यर्थ है। –