के लिए अस्थायी मैं निम्नलिखित कोडबाध्यकारी एक lvalue संदर्भ
string three()
{
return "three";
}
void mutate(string& ref)
{
}
int main()
{
mutate(three());
return 0;
}
है आप देख सकते हैं मैं तीन()करने मे बदलें विधि गुजर रहा हूँ। यह कोड अच्छी तरह से संकलित करता है। मेरी समझ यह है कि अस्थायी को गैर-कॉन्स संदर्भों को असाइन नहीं किया जा सकता है। यदि हां, यह प्रोग्राम कैसे संकलित कर रहा है?
कोई विचार?
संपादित करें:
संकलनकर्ता की कोशिश की: वी.एस. 2008 और VS2010 बीटा
जीसीसी आज़माएं यह सी ++ मानक के करीब है। – Learner
दुर्भाग्य से, मेरे पास जीसीसी नहीं है। –
@Appu: गायब होने के लिए आपके कोड को ठीक करने के बाद और 'std' उपसर्ग, Comau (http://www.comeaucomputing.com/tryitout/) कहता है: 'गैर-कॉन्स के संदर्भ का प्रारंभिक मान एक लवल्यू होना चाहिए'। वीसी इसे स्वीकार करने का कारण यह है कि वीसी टूट गया है। (वे इसे "फीचर" कहते हैं, लेकिन असल में यह एक बग है।) – sbi