2015-07-16 9 views
5

मैं मसौदा N4268 एक अवधारणा नीचेएक अनाम नाम क्या है?

[नोट striked-यद्यपि भाग में "अज्ञात lvalue" कहा जाता है में देखा है: temporaries, अनाम lvalues, और नामित lvalues ​​कोई संबंध के साथ हैं एक अस्थायी वस्तु है एक स्वीकार्य टेम्पलेट-तर्क नहीं जब संबंधित टेम्पलेट-पैरामीटर में संदर्भ प्रकार होता है। [उदाहरण: ...]]

मैंने बहुत कुछ खोजा है लेकिन न तो स्टैक ओवरफ्लो और न ही Google ने मुझे जवाब दिया है। मैं केवल मूल्य श्रेणियों

What are rvalues, lvalues, xvalues, glvalues, and prvalues

के बारे में इस पोस्ट पाया लेकिन यह मदद नहीं की।

+0

[रावल्यू या लवल्यू संदर्भ को पहचानने के तरीके और यदि यह एक नाम का नियम है] (http://stackoverflow.com/q/27554296/3953764) –

+0

'* पीआरटी' एक लाभा का उदाहरण है बिना किसी नाम के –

+0

फ़ंक्शन कॉल अभिव्यक्ति, जहां कहा गया फ़ंक्शन लौटा संदर्भ का प्रकार है, एक अनाम नाम भी है। – ibrahim5253

उत्तर

4

सभी लाइवल्यू अभिव्यक्तियों के नाम नहीं हैं।

संदर्भ या सूचक प्रकार का एक गैर प्रकार टेम्पलेट पैरामीटर के लिए, निरंतर अभिव्यक्ति की मूल्य (या एक सूचक प्रकार के लिए उल्लेख नहीं करेगा: वास्तव में, N4296 में शब्दों हमें कुछ उदाहरण देता है , का पता) नहीं होगा:

  • एक subobject (1.8),
  • एक अस्थायी वस्तु (12.2),
  • एक स्ट्रिंग शाब्दिक (2.14.5),
  • पर का परिणाम ypeid अभिव्यक्ति (5.2.8), या
  • एक पूर्वनिर्धारित func परिवर्तनीय (8.4.1)।

इसके अलावा, मूल्य श्रेणियों पर cppreference की जानकारी lvalues ​​के बारे में विस्तार में चला जाता है:

एक lvalue एक अभिव्यक्ति है कि एक गैर अस्थायी वस्तु या एक गैर सदस्य समारोह की पहचान करता है।

निम्नलिखित भाव lvalues ​​हैं:

  • एक चर या दायरे में समारोह के नाम पर, इस तरह के std :: CIN या std :: endl के रूप में प्रकार, की परवाह किए बिना। यहां तक ​​कि यदि चर का प्रकार संदर्भ है, तो इसके नाम से युक्त अभिव्यक्ति एक lvalue अभिव्यक्ति है।

  • समारोह कॉल या अतिभारित ऑपरेटर अभिव्यक्ति करता है, तो समारोह के या अतिभारित ऑपरेटर की वापसी प्रकार एक lvalue संदर्भ है, इस तरह के std :: getline (std :: CIN, str) या std :: अदालत < < 1 या str1 = के रूप में str2 या ++ आईटीईआर

  • निर्मित पूर्व वेतन वृद्धि और पूर्व घटती, भिन्नता, असाइनमेंट और मिश्रित असाइनमेंट, सबस्क्रिप्ट (एक सरणी XValue को छोड़कर), सदस्य एक्सेस (गैर स्थिर गैर संदर्भ सदस्यों के अलावा xvalues ​​के सदस्य, सदस्य गणक, और गैर स्थैतिक सदस्य फ़ंक्शंस), के माध्यम से सदस्य का उपयोग डेटा सदस्य को पॉइंटर यदि बाएं हाथ के ऑपरेशन lvalu है ई, कॉमा ऑपरेटर यदि दाहिनी ओर ऑपरेंड लवल्यू है, तो पर तीसरी और तीसरी ऑपरेटिंग लाइब्रेरी सशर्त होती है।

  • lvalue संदर्भ प्रकार के लिए अभिव्यक्ति कास्ट करें।

  • स्ट्रिंग शाब्दिक

बहरहाल, यह सब अप्रासंगिक है के रूप में परिवर्तन की गुंजाइश प्रस्ताव Allow constant evaluation for all non-type template arguments है।

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