C++ में निम्नलिखित कोड एक संकलक त्रुटि देता है होता है:Destructors (int, चार आदि ..)
typedef int myint;
void destruct2 (myint * item)
{
item->~myint();
}
दूसरा कोड क्यों काम करता है? क्या इंटेल को केवल विनाशक हो जाता है क्योंकि इसे टाइप किया गया है?
यदि आपको आश्चर्य है कि कोई ऐसा क्यों करना चाहेगा: यह सी ++ कोड को दोबारा करने से आता है। हम मानक ढेर को हटा रहे हैं और इसे स्वयं के पूल के साथ बदल रहे हैं। इसके लिए हमें नियुक्ति-नए और विनाशकों को कॉल करने की आवश्यकता है। मुझे पता है कि प्राचीन प्रकार के लिए विनाशकों को बुलावा बेकार है, लेकिन हम उन्हें कोड में तब भी चाहते हैं जब हम बाद में वास्तविक वर्गों के साथ पीओडी को प्रतिस्थापित करते हैं।
यह पता लगाना कि नग्न int काम नहीं करता है लेकिन टाइप किए गए लोग आश्चर्यचकित थे।
बीटीडब्ल्यू - मेरे पास एक समाधान है जिसमें टेम्पलेट-फ़ंक्शन शामिल हैं। हम सिर्फ टेम्पलेट के अंदर typedef और सब कुछ ठीक है।
+1 "पवित्र मानक" के लिए +1। – ApprenticeHacker
मुझे लगता है कि यह पुराना कंपाइलर्स (2012-2014) – GameDeveloper
के भीतर असंगत std :: is_destructible बनाता है जो इस उत्तर को पर्याप्त वोट नहीं दे सकता! – Nils