मैं C ++ के अभिव्यक्ति प्रकारों को समझने की कोशिश करता हूं और जितना अधिक मैं पढ़ता हूं, मैं उतना अधिक भ्रमित था, क्योंकि मुझे सी ++ ड्राफ्ट को पचाने में बहुत मुश्किल लगता है और इसलिए अन्य संसाधनों को पसंद करते हैं, लेकिन वे या तो एक दूसरे के विरोधाभास करते हैं या खाते में नहीं लेते हैं C ++ वर्जन के बीच वर्डिंग और डेफिनेशन में भारी बदलाव होता है।
निम्नलिखित में मैं निम्नलिखित ड्राफ्ट का उल्लेख करता हूं:
C++11
3.10 अंतराल और अंतराल... एक प्रचलन ("शुद्ध" अवतरण) एक प्रचलन है जो कि एक xvalue नहीं है। [उदाहरण: एक फ़ंक्शन को कॉल करने का परिणाम जिसका वापसी प्रकार एक संदर्भ नहीं है एक प्रचलन है। शाब्दिक मूल्य जैसे कि 12, 7.3e5, या सत्य भी एक प्रचलन है। - अंतिम उदाहरण]
C++17
3.10 अंतराल और अंतराल... एक प्रस्तावना एक अभिव्यक्ति है जिसका मूल्यांकन किसी ऑब्जेक्ट या बिट-फील्ड को इनिशियलाइज़ करता है, या किसी ऑपरेटर के ऑपरेंड के मान की गणना करता है, जैसा कि उस संदर्भ से निर्दिष्ट होता है जिसमें यह दिखाई देता है।
C++20
7.2.1 मूल्य श्रेणियां *... एक भाव एक अभिव्यक्ति है जिसका मूल्यांकन किसी ऑब्जेक्ट या बिट-फील्ड को इनिशियलाइज़ करता है, या किसी ऑपरेटर के कार्य के मूल्य की गणना करता है, जैसा कि उस संदर्भ से निर्दिष्ट होता है जिसमें यह प्रकट होता है, या एक अभिव्यक्ति जिसमें cv शून्य होता है।
मैं शब्दों के बदलाव को समझूंगा, और कुछ समायोजन किए जाते हैं, लेकिन मेरे लिए पूरी परिभाषा बदल जाती है। क्या कोई मुझे यह समझने में मदद कर सकता है? उदाहरण के लिए, वाक्य को क्यों हटा दिया गया था कि एक प्रचलन एक प्रचलन है जो कि एक xvalue नहीं है? या सहायक उदाहरण क्यों निकाला गया?