दिलचस्प पोस्ट
संस्कृति इन्फॉ। क्या होता है? क्या जावा एफ़टीपी क्लाइंट लायब्रेरी का उपयोग करना चाहिए? एंड्रॉइड के साथ HTTPS GET (SSL) और स्व-हस्ताक्षरित सर्वर प्रमाण पत्र सभी गैइट टैग कैसे सूचीबद्ध करें? ViewController का जवाब TOSelector: संदेश को deallocated उदाहरण (CRASH) को भेजा गया प्रत्येक तीन अंकों की संख्या के लिए अल्पविराम जोड़ें अजीब लिंकिंग त्रुटि: डीएसओ कमांड लाइन से गायब है जब माउस विंडो छोड़ता है तो मैं कैसे पता लगा सकता हूँ? त्रुटि: कार्य निष्पादन के लिए असफल रहा ': ऐप: परिवर्तन क्लासेसजर्म मेर्जिंगफॉरेडिबग' का उपयोग करना () LINQ से SQL में है पिकासो फाइल सिस्टम से छवि लोड करें Matlab में चर के रूप में i और j का उपयोग करना एक जीआईटी भंडार में, निर्देशिका को कैसे ठीक से नाम दिया जाए? आप बाल प्रक्रिया के लिए विशेषाधिकारों को कैसे हटा सकते हैं? पीएचपी में बिट्स ऑपरेशन?

किसी भी उपयोग के लिए RVVN संदर्भों का उपयोग करें?

मुझे नहीं लगता, लेकिन मैं पुष्टि करना चाहूंगा क्या const Foo&& एंड एंड के लिए कोई फायदा है, जहां Foo क्लास का प्रकार है?

वेब के समाधान से एकत्रित समाधान "किसी भी उपयोग के लिए RVVN संदर्भों का उपयोग करें?"

वे कभी-कभी उपयोगी होते हैं मसौदा सी ++ 0x खुद कुछ स्थानों में उनका उपयोग करता है, उदाहरण के लिए:

 template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete; 

उपरोक्त दो अतिभारित यह सुनिश्चित करते हैं कि अन्य ref(T&) और cref(const T&) फ़ंक्शंस रवाही (जो अन्यथा संभव हो सकता है) से बाध्य नहीं होता।

अद्यतन करें

मैंने अभी आधिकारिक मानक N3290 की जांच की है , जो कि दुर्भाग्य से सार्वजनिक तौर पर उपलब्ध नहीं है, और इसमें 20.8 फ़ंक्शन ऑब्जेक्ट्स हैं [function.objects] / p2:

 template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete; 

फिर मैंने सबसे हालिया पोस्ट सी ++ 11 ड्राफ्ट की जांच की, जो कि सार्वजनिक रूप से उपलब्ध है, N3485 , और 20.8 समारोह वस्तुओं [function.objects] / p2 में यह अभी भी कहता है:

 template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete; 

उन्हें अनुमति दी जाती है और यहां तक ​​कि कार्यों को const आधार पर रैंक किया जाता है, लेकिन जब से आप const Foo&& एंड एंड द्वारा संदर्भित const वस्तु से नहीं जा सकते, तब वे उपयोगी नहीं हैं।

मैं ऐसी स्थिति के बारे में नहीं सोच सकता जहां यह सीधे उपयोगी हो, लेकिन यह अप्रत्यक्ष रूप से इस्तेमाल किया जा सकता है:

 template<class T> void f(T const &x) { cout << "lvalue"; } template<class T> void f(T &&x) { cout << "rvalue"; } template<class T> void g(T &x) { f(T()); } template<class T> void h(T const &x) { g(x); } 

जी में टी टी const है, इसलिए f 's x एक T const और& है

यह संभावना है कि यह (जब वह ऑब्जेक्ट को स्थानांतरित करने या उपयोग करने का प्रयास करता है) एफ में एक गलती त्रुटि में परिणाम देता है, लेकिन एफ एक रैवल्यू-रेफरी ले सकता है, जिससे कि यह रैवल्यू को संशोधित किए बिना लावलुओं पर नहीं बुलाया जा सके (जैसा कि बहुत आसान है उदाहरण ऊपर)