2011-09-18 9 views
6

4,1/2lvalue rvalue करने के लिए रूपांतरण

मूल्य वस्तु lvalue ने संकेत में निहित से rvalue परिणाम है। जब आकार (5.3.3) के संचालन के लिए एक lvalue-to-rvalue रूपांतरण होता है संदर्भित ऑब्जेक्ट में निहित मान का उपयोग नहीं किया जाता है, क्योंकि वह ऑपरेटर अपने ऑपरेंड का मूल्यांकन नहीं करता है।

जिज्ञासा से बाहर

, मैं सोच रहा था, उसी पर लागू होता है करता है, के लिए है, जबकि बयान, यानी lvalue rvalue में बदल जाती है जब बयान का नतीजा मूल्यांकन किया जाता है?

उत्तर

7

हां। lvalue-to-rvalue रूपांतरण के बिना, यह मान पढ़ नहीं सकता है।

शिथिल बोल, कंटेनर के कुछ प्रकार के रूप में lvalue, और कंटेनर में निहित मूल्य के रूप में rvalue के बारे में सोच।

सी ++ 03, खंड §3.10/7 पढ़ता है,

जब भी एक lvalue एक संदर्भ में, जहां एक rvalue की उम्मीद है, lvalue एक rvalue में बदल जाती है में प्रकट होता है; 4.1, 4.2, और 4.3 देखें।

, के साथ साथ इसे पढ़ें §4.1/2 (अपने उद्धरण),

वस्तु lvalue ने संकेत में निहित मूल्य rvalue परिणाम है।

संबंधित विषय:

+0

मानक के मामले में, क्या इसका मतलब यह है कि यह 'रेक्स्यूलिक रूप से एक रावल्यू' है? मुझे इसे पढ़ना याद है लेकिन मुझे यकीन नहीं है कि मैं इसे सही कर रहा हूं। – parc84

+0

@ parc84: spec से उद्धरण जोड़ा गया। – Nawaz

3

जवाब है हां।

जब एक बूल रैवल्यू की अपेक्षा की जाती है, रूपांतरण भी लागू होता है। परीक्षण एक चर होना एक उदाहरण देखने के लिए करते हैं:

परीक्षण, सही या गलत का
if(test) 

rvalue, अगर अंदर मूल्यांकन किया जाता है।

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

  • कोई संबंधित समस्या नहीं^_^