c++ - order of evaluation of operands -
अभिव्यक्ति में a + b
, यह a
है मूल्यांकन b
से पहले किया गया है, या अनिर्दिष्ट मूल्यांकन का क्रम है? मुझे लगता है कि यह बाद वाला है, लेकिन मानक में एक निश्चित जवाब खोजने के लिए मुझे संघर्ष करना है।
चूंकि मुझे नहीं पता कि सी सी से अलग है या नहीं, या अगर मूल्यांकन क्रम के नियम सी + +11, मैं प्रश्न को तीनों के रूप में टैग करने वाला हूँ।
सी ++ में, उपयोगकर्ता के लिए परिभाषित प्रकार a + b
फ़ंक्शन कॉल है, और मानक कहते हैं:
§5.2.2.8 - [...] फ़ंक्शन के मूल्यांकन का क्रम बहसें अनिर्दिष्ट हैं [...]
सामान्य ऑपरेटरों के लिए, मानक कहते हैं:
§5.4 - जहां नोट किया गया, सिवाय व्यक्तिगत ऑपरेटरों के ऑपरेंडों के मूल्यांकन और व्यक्तिगत अभिव्यक्तियों के उप-प्रत्यारोप, और जिस क्रम में दुष्प्रभाव होते हैं, वह अनिर्दिष्ट है [...]
ये सी ++ 11 के लिए नहीं बदले गए हैं हालांकि, दूसरे शब्दों में शब्दों के परिवर्तन में यह कहना है कि ऑर्डर "अनिर्दिष्ट" के बजाय " अविवाहित " है, लेकिन यह अनिवार्य रूप से समान है।
मेरे पास एक प्रति नहीं है सी मानक का, लेकिन मैं सोचता हूं कि यह वहीं है।
Comments
Post a Comment