में पूर्णांक प्रकारों और पूर्णांक रूपांतरणों के बीच अंतर क्या है सी ++ मानक (पूर्णांक पदोन्नति) की धारा 4.5 उच्च रैंक वाले अभिन्न प्रकारों को परिवर्तित करने के विशिष्ट मामलों के बारे में वार्ता करता है।सी ++
एक पूर्णांक प्रकार का एक rvalue एक अन्य पूर्णांक प्रकार का एक rvalue में बदला जा सकता:
धारा सी ++ मानक (अभिन्न रूपांतरण) के 4.7 (बुलेट 4.7.1) के साथ शुरू होता है। एक गणना प्रकार का एक रैल्यू एक पूर्णांक प्रकार के एक रैल्यू में परिवर्तित किया जा सकता है।
जहां तक मैं 4.5 में वर्णित रूपांतरणों को समझता हूं (शायद बुलेट 4.5.3 (enums) को छोड़कर) अकेले 4.7 सेक्शन की तकनीकों का उपयोग करके किया जा सकता है: 4.5.1 और 4.5.2 पूरी तरह से कवर किए गए हैं 4.7.1 द्वारा; 4.5.4 4.7.4 द्वारा कवर किया गया है। तो पूरे 4.5 खंड का उद्देश्य क्या है? यह कौन से अतिरिक्त रूपांतरण सक्षम करता है? शायद मुझे कुछ प्रतिबंध याद आ रहे हैं?
पीएस मैं मानक के सी ++ 03 संस्करण पढ़ रहा हूँ।
हम्म। तो अगर मैंने 'हस्ताक्षर किए गए चार को; हस्ताक्षरित चार बी; ... लघु सी = ए + बी', शुरुआत में 'ए' और 'बी' * प्रचारित * से (अन) हस्ताक्षरित इन्स में जोड़ा गया है, और फिर परिणाम * परिवर्तित * से' छोटा 'है? –
@buratinas, हाँ। – AProgrammer
@buratinas: ए को असंगत int में पदोन्नत किया जाता है, बी को हस्ताक्षरित int में पदोन्नत किया जाता है, फिर बी को बढ़ावा देने के परिणाम को बिना हस्ताक्षर किए गए int में परिवर्तित किया जाता है, फिर इन्हें जोड़ा जाता है और परिणाम हस्ताक्षरित लघु में परिवर्तित हो जाते हैं। –