में राजस्व और अस्थायी वस्तुएं मुझे रावल्यू और अस्थायी वस्तु के बीच अंतर को समझने में काफी समय लगा। लेकिन अब पेज 75 पर अंतिम समिति मसौदा कहता है:एफसीडी
एक rvalue [...] एक XValue, एक अस्थायी वस्तु या उसके subobject, या कि एक साथ संबद्ध नहीं है एक मूल्य है वस्तु।
मैं अपनी आंखों पर विश्वास नहीं कर सकता। यह एक त्रुटि होनी चाहिए, है ना?
स्पष्ट करने के लिए है, तो यहां मैं शब्दों को समझने है: prvalue std::string("hello")
और lvalue:
#include <string>
void foo(std::string&& str)
{
std::cout << str << std::endl;
}
int main()
{
foo(std::string("hello"));
}
इस कार्यक्रम में, वहाँ दो भाव है कि एक ही अस्थायी वस्तु निरूपित कर रहे हैं str
। अभिव्यक्तियां वस्तुएं नहीं हैं, लेकिन उनका मूल्यांकन एक उत्पन्न कर सकता है। विशेष रूप से, एक प्राप्ति का मूल्यांकन एक अस्थायी वस्तु उत्पन्न करता है, लेकिन एक प्रसार एक अस्थायी वस्तु नहीं है। क्या कोई मेरे साथ सहमत है या मैं पागल हो गया है? :)
आप comp.lang.C++ पर प्रश्न पोस्ट करके सीधे लोगों से पूछने पर विचार कर सकते हैं। Std –
@ नोहा: मैंने किया। चलो देखते हैं कि क्या होता है :) – fredoverflow
[comp.std.C++ थ्रेड से लिंक] (http://groups.google.de/group/comp.std.c++/browse_thread/thread/5cdae718218a462c) – fredoverflow