2016-05-04 11 views
14

क्या ऐसे कोई मामले हैं जिनमें const&& का उपयोग रेंज में लूप के लिए किया जाता है?रेंज के लिए const && के अनुप्रयोग?

for (const auto && x : c) // ? 
+3

क्या ऐसे कोई मामले हैं जहां 'const &&' समझ में आता है * कहीं भी *? – immibis

+2

@immibis मुझे पता है [एक] (http://en.cppreference.com/w/cpp/utility/functional/ref) – Praetorian

+0

मुझे श्रेणी के विशेष संदर्भ में रूचि थी। मैंने 'इस कोड] (https://blogs.msdn.microsoft.com/larryosterman/2015/11/16/recursively-deleting-a-directorywith-long-filename में एक श्रेणी में उपयोग किया गया' const auto && ' -support /) और इसके बारे में उत्सुक था। इसके बजाय 'की (स्थिरांक ऑटो && यह: डीएल) के लिए' 'मैं तो बस (स्थिरांक ऑटो और ...)' के लिए, _observing_ मदों के लिए इस्तेमाल किया है चाहता हूँ। –

उत्तर

9

लघु जवाब: कोई, वहाँ में range-for loops (या अन्यथा) const auto&& के लिए कोई उपयोग करता है

आप rvalue references का प्रयोग करेंगे अगर आप एक अनुकूलित तरीके से वस्तुओं को स्थानांतरित करना चाहते हैं। आप ऐसा नहीं कर सकते (सामान्य रूप से) जब तक आप उस वस्तु को संशोधित नहीं कर सकते हैं। तो const rvalues (*) कोई व्यावहारिक उपयोग (आप उन लोगों से नहीं ले जा सकते, क्योंकि उन पर संशोधित नहीं कर सकते) के हैं।

range-for loopsconst auto&& के बारे में इस चर्चा में तालिका में कुछ भी नहीं लाएं। उदाहरण इस अतः पद के लिए


की जांच: Do rvalue references to const have any use?

केवल स्थिरांक rvalue संदर्भ का उपयोग किये जाने वाले कुछ समारोह भार के नष्ट करने के लिए है। यह range-for loops पर लागू नहीं होता है।


(*) वैसे, const auto&& एक स्थिरांक rvalue संदर्भ, नहीं एक अग्रेषण संदर्भ है।

+0

ठीक है, आप तत्वों संशोधित किया जा रहा रोकने के लिए गारंटी दी जाती है - लेकिन अगर है कि वांछित है, सरल स्थिरांक संदर्भ अधिक straitghtforward होगा। – SergeyA

+0

@ सर्गेईए बिल्कुल – bolov

+2

@ सर्गेई एकमात्र कारण है कि आप रावल संदर्भों का उपयोग करेंगे यदि आप प्रभावी रूप से उनसे आगे बढ़ना चाहते हैं। – bolov

संबंधित मुद्दे