मुझे नहीं लगता कि आपको कोई अन्य मामला मिल जाएगा। अगर हम मसौदा सी देखो ++ मानक अनुबंध A व्याकरण सारांश हम व्याकरण में ही अन्य स्थानों को देख सकते हैं, जहां प्रकार- नाम दिखाता हैं:
nested-name-specifier:
::
type-name ::
namespace-name ::
decltype-specifier ::
nested-name-specifier identifier ::
nested-name-specifier templateopt simple-template-id ::
और:
simple-type-specifier:
nested-name-specifieropt type-name
[...]
इनमें से कोई भी ऐसा अवसर प्रदान नहीं करता है जिसे हम pseduo-destructor के साथ प्राप्त करते हैं जिसमें निम्नलिखित व्याकरण होता है:
pseudo-destructor-name:
nested-name-specifieropt type-name :: ~ type-name
nested-name-specifier template simple-template-id :: ~ type-name
nested-name-specifieropt~ type-name
~ decltype-specifier
और अनुभाग 5.2.4
[expr.pseudo] जो व्यवहार हम देखते हैं के लिए प्रदान करता है में कवर किया जाता है:
एक बिंदु के बाद एक छद्म नाशक-नाम का उपयोग। या तीर -> ऑपरेटर टाइप-नाम या अस्वीकरण-निर्दिष्टकर्ता द्वारा निर्दिष्ट गैर-वर्ग प्रकार के विनाशक का प्रतिनिधित्व करता है। नतीजा केवल फ़ंक्शन कॉल ऑपरेटर() के लिए ऑपरेटिंग के रूप में उपयोग किया जाएगा, और इस तरह के कॉल के परिणाम टाइप शून्य है। डॉट या तीर से पहले पोस्टफिक्स-अभिव्यक्ति का मूल्यांकन ही एकमात्र प्रभाव है।
दूसरी ओर
हम खंड में नेस्टेड-नाम-विनिर्देशक के लिए नियमों को देख सकते हैं 3.4.3
[basic.lookup.qual] तरह के एक मामले न करे:
एक वर्ग के नाम या के बाद को नेस्टेड-नाम-विनिर्देशक के लिए लागू किया गया है जो इसकी कक्षा, नामस्थान, या गणना को दर्शाता है। एक नेस्टेड-नाम-विनिर्देशक में :: गुंजाइश संकल्प ऑपरेटर एक decltype-विनिर्देशक से पहले नहीं है, तो यह है कि पूर्ववर्ती नाम :: के देखने केवल नामस्थान, प्रकार, और टेम्पलेट्स जिसका विशेषज्ञताओं प्रकार के होते हैं समझता है।बीमार का गठन नाम पाया एक नाम स्थान या एक वर्ग, गणन, या निर्भर प्रकार नामित नहीं खाता है तो कार्यक्रम है
सरल प्रकार-विनिर्देशक मामले हमें वहाँ नहीं मिलता है या तो के बाद से मौलिक प्रकार के होते हैं इस मामले के लिए पहले ही स्वीकार्य है।
स्रोत
2015-11-28 04:43:50
एक अस्थायी वस्तु अभिव्यक्ति संशोधित करना होगा: 'टी {}' मान्य है, लेकिन 'int [5] {}' नहीं है। (लेकिन 'पूर्णांक [5]' नहीं एक बुनियादी प्रकार है।) –
अगर यह आपके मानकों में है मैं नहीं जानता, लेकिन आप एक इंटीरियर गुंजाइश या नाम स्थान में एक प्रकार के नाम को फिर से परिभाषित कर सकते हैं। '{टी = int;} का उपयोग करके 'ठीक /' {int = टी;} 'नहीं। – rici
@rici, यह वह नहीं है जो मैं सोच रहा था। यहां, 'टी' परिभाषित किया जा रहा है। हम जानते हैं कि मौलिक प्रकारों को फिर से परिभाषित नहीं किया जा सकता है। मुझे अपना प्रश्न परिशोधित करने दें। –