C++ 0x -n3290 ड्राफ्ट में: वे खंड में कहा: Destructors: 12.4/2 बिंदु अंतिम पंक्तिएक विनाशक को एक सूचक के साथ घोषित किया जाएगा या नहीं घोषित किया जाएगा? सी ++
**A destructor shall not be declared with a ref-qualifier.**
C++ 03 ड्राफ्ट में .... वे इस बात का उल्लेख नहीं था विनाशकों में?
मेरे सवाल घोषणा के इस प्रकार की अनुमति है या
*~S() ; //this declaration is allowed or not according to the Standard's
//**~S(); ***~S() ; etc...........
है? जहां ड्राफ्ट में उन्होंने इस बारे में वर्णन नहीं किया ... घोषणा?
जीसीसी 4.6.0 में, सन/Oracle सी ++ 12.0, ---> इस घोषणा की अनुमति दी है पूर्णांक Comeau C/C++ ->
@ डीएविड: ओह ... लेकिन एक विनाशक की घोषणा के संदर्भ में .. उन्होंने केवल अबाउट ~ ऑपरेटर कहा .. लेकिन जहां उन्होंने कहा नहीं ... ऐसी घोषणा की अनुमति है , इत्यादि की अनुमति नहीं है ... जैसे * ~ ए(), और ~ ए(), आदि – user751747
@ user751747: व्याकरण कहता है कि * रेफ-क्वालीफायर * को दूर दाईं ओर फ़ंक्शंस में जोड़ा गया है (* सीवी-क्वालीफायर के बाद *), और इसका मतलब है कि वाक्य का अर्थ है: '~ ए() &;' या '~ ए() &&;', और दोनों को अमान्य के रूप में परिभाषित करता है। '&~A();' और '* ~ ए(); 'अमान्य हैं क्योंकि वे * व्याकरण * से मेल नहीं खाते हैं, संकलन नहीं करने वाले सभी चीज़ों पर अतिरिक्त विवरण प्रदान करने की आवश्यकता नहीं है। उदाहरण के लिए, मानक में कहीं भी यह कहता है कि 'ए] [+ =/a' गलत है, यह केवल यह बताता है कि कौन सी संरचनाएं सही हैं और कोई भी उनमें से किसी से मेल नहीं खाता है। –
@ डेविड: धन्यवाद – user751747