इस सवालC++ ऑपरेटर ओवरलोडिंग कार्यों
What are the evaluation order guarantees introduced by C++17?
इस विनिर्देशhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0145r3.pdf
साथ
और
इसके अलावा विनिर्देश से इस पाठ के बारे में के साथ 17 मूल्यांकन आदेश , हम निम्नलिखित additio का सुझाव देते हैं नल नियम: का ऑर्डर ओवरलोडेड ऑपरेटर से जुड़ी अभिव्यक्ति का मूल्यांकन संबंधित अंतर्निहित ऑपरेटर से जुड़े ऑर्डर द्वारा निर्धारित फ़ंक्शन कॉल के नियमों के अनुसार निर्धारित नहीं है।
क्या इसका मतलब यह है कि ये दो अभिव्यक्ति बराबर नहीं हैं?
a << b;
operator<<(a, b);
जैसा कि दूसरा फ़ंक्शन कॉल जैसा दिखता है, इसलिए पैरामीटर में कोई गारंटीकृत मूल्यांकन आदेश नहीं है?
यह सही है, दो अलग अलग वाक्यविन्यास अलग अर्थ विज्ञान अब है।ऑपरेटर सिंटैक्स में इसके अनोखे अर्थशास्त्र हैं, फ़ंक्शन कॉल सिंटैक्स में फ़ंक्शन कॉल के (नए!) अर्थशास्त्र हैं। –
@KerrekSB यही कारण है कि यह प्रस्ताव: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0431r0.htm लिखा गया था लेकिन मुझे विश्वास नहीं है कि यह किसी भी प्राप्त हुआ है संकर्षण। – ForeverLearning
@ForeverLearning: यह निश्चित रूप से एक विषय है जो दिल, दिमाग और प्रस्तावों को प्रेरित करता है! –