ऐसा प्रतीत होता है कि auto
कीवर्ड का उपयोग करके अलग-अलग प्रकार के एकाधिक चर घोषित करने की अनुमति नहीं है। मैं मानक में शब्द को समझ नहीं सकता जो इसे रोक देगा।सभी 'ऑटो' घोषणाओं को एक ही प्रकार का क्यों होना चाहिए?
auto i = 1, j = 1.0; //deduction failure (several compilers)
ऐतिहासिक मैं समझता हूँ के बाद से आप केवल एक डीईसीएल-विनिर्देशक-कल्पना है। हालांकि, मानक में नियमों को रोकना प्रतीत नहीं होता है, वास्तव में वे प्रोत्साहित करते हैं कि auto
प्रत्येक के लिए एक अलग प्रकार हो सकता है। पर विचार करें इन अनुच्छेदों:
8-3 एक घोषणा में प्रत्येक init-declarator अलग से विश्लेषण किया जाता है जैसे कि यह अपने आप में एक घोषणा में था।
7.1.6.4-7 यदि घोषणाकर्ताओं की सूची में एक से अधिक घोषणाकर्ता शामिल हैं, तो प्रत्येक घोषित चर के प्रकार को ऊपर वर्णित अनुसार निर्धारित किया गया है। [...]
भी auto
बिना नहीं सभी चर एक ही प्रकार, के रूप में *
जैसे कुछ संशोधक व्यक्तिगत रूप से प्रत्येक declarator लागू किया जा सकता है की जरूरत है। मेरे लिए यह अब प्रकट होता है कि शब्द प्रत्येक auto
घोषणाकर्ता को पूरी तरह से अलग प्रकार की अनुमति देता है।
कौन सा पैराग्राफ इस पर प्रतिबंध लगाएगा?
बीटीडब्ल्यू - 7.1.6.4/3 में उदाहरण का उपयोग 'कॉन्स ऑटो * वी = और एक्स, यू = 6 है; // ठीक है: v में टाइप कॉन्स int * है, आपके पास टाइप कॉन्स int है - स्पष्ट रूप से विचार यह है कि पहले चर से टाइप कटौती का उपयोग बाद वाले लोगों को बनाते समय किया जा सकता है .... –