मैं विनाशकों और noexcept
के साथ थोड़ा उलझन में हूं। मेरी समझ यह थी कि सी ++ 11 में उपयोगकर्ता द्वारा परिभाषित समेत किसी भी विनाशक, noexcept(true)
है, भले ही हम throw
इससे हों। और किसी को स्पष्ट रूप से noexcept(false)
निर्दिष्ट करना होगा यदि वे किसी कारण से ऐसा होना चाहते हैं।विनाशक और
जो मैं देख रहा हूं वह काफी विपरीत है - जीसीसी 4.7.2, उपयोगकर्ता द्वारा परिभाषित विनाशक के साथ, कोई फर्क नहीं पड़ता कि वर्ग और विनाशक कैसे प्राचीन हैं, निश्चित रूप से noexcept(false)
है। मुझे यहां क्या समझ नहीं आ रहा है? क्या उपयोगकर्ता द्वारा परिभाषित विनाशकों के साथ कुछ छुपा गोचा है?
12,4/3: "एक नाशक का एक घोषणा है कि एक अपवाद-विनिर्देश नहीं है परोक्ष माना जाता है एक अपवाद घोषणा के रूप में एक ही अपवाद-विनिर्देश (15.4) है। " यानी एक विनाशक केवल 'अस्वीकार (सत्य)' है यदि सभी सदस्यों और अड्डों में कोई अपवाद नहीं है। – ipc