Wednesday 15 September 2010

auto - How does one achieve const_auto, since C++11 lacks it? -


स्वतः प्रकार का सी ++ 11 आसान है, इसलिए अब एक Const_auto प्रकार, भी उदाहरण के लिए, std :: list & lt; T & gt; A; , अगर

  स्वतः p = a.begin ();   

प्रकार std :: list & lt; T & gt; :: iterator है, फिर एक चाहता है कि

  const_auto p = a ।शुरू();   

प्रकार std :: list & lt; T & gt; :: const_iterator था। दुर्भाग्य से, सी ++ 11 में const_auto के बारे में सुना नहीं गया है कृपया,

(जानकारी के लिए)

सी + 11 आपको लिखने की अनुमति नहीं देता

  const auto p = a.begin ();   

हालांकि, यह आपकी इच्छानुसार नहीं करता है यह निरंतर डेटा के लिए एक नियमित इटरेटर बनाता है जिसका मूल्य बदला नहीं जा सकता।

दाहिनी ओर a.begin () के प्रकार को a के प्रकार से निर्धारित किया जाता है, और बायीं तरफ कुछ भी नहीं, हाथ की तरफ। यदि कोई गैर-कॉन्स्ट है, तो a.begin () का गैर-कॉन्स्ट वर्जन कहा जाएगा। तो, आप a को एक const & amp; और उसके बाद इसका उपयोग करें, या आप इसके लिए एक निरंतर संदर्भ बना सकते हैं और इसका इस्तेमाल कर सकते हैं:

  const auto & amp; बी = ए; ऑटो पी = बी.बीजिन ();   

हालांकि, एक सरल दृष्टिकोण का उपयोग करने के लिए नई शुरुआत की जाएगी। Cbegin () और .end ():

  auto p = a.cbegin ( );    

No comments:

Post a Comment