2012-04-25 17 views
13

मुझे प्लेटफॉर्म पर कोडिंग याद है जिसमें आरटीटीआई और अपवाद दोनों अक्षम थे, और उन अन्य लोगों पर जिन्हें दोनों सक्षम थे। हालांकि, मुझे एक मंच पर कोडिंग याद नहीं है जो एक को सक्षम करेगा और दूसरे को अक्षम करेगा।क्या आरटीटीआई और अपवादों के बीच कोई संबंध है?

क्या दो अवधारणाओं के बीच कोई निर्भरता है? अलग-अलग कहा, क्या अपवादों को आरटीटीआई को काम करने की आवश्यकता है? या इसके विपरीत?

+0

AFAIR एमएसवीसी 5 या 6 में डिफ़ॉल्ट रूप से आरटीआईआई और अपवाद थे। गलत हो सकता है, यह बहुत समय पहले था। –

+0

इस लेख पर [आरटीटीआई और अपवादों की ऑर्थोगोनैलिटी] (http://monoinfinito.wordpress.com/2013/07/25/c-exceptions-under-the-hood-appendix-iii-rtti-and-exceptions-orthogonality /) इस विषय में जोड़ता है। यह दिखाता है कि भले ही उजागर कार्यक्षमता स्वतंत्र है, जीसीसी में अपवाद वास्तव में काम करने के लिए "आरटीटीआई" के अपने संस्करण का उपयोग करते हैं। – Chuim

उत्तर

10

नहीं, अपवादों को आरटीटीआई कार्यक्षमता की आवश्यकता नहीं है और इसके विपरीत दोनों अलग-अलग विशेषताएं हैं।

कुछ कार्यान्वयन आपको अपवादों को अक्षम करने की अनुमति दे सकते हैं (- जीसीसी में अपवाद) लेकिन मुझे किसी भी कार्यान्वयन के बारे में पता नहीं है जिसके लिए अपवादों या इसके विपरीत आरटीटीआई की आवश्यकता है।

+6

शायद अपवादों को type_info और dynamic_cast जैसे स्पष्ट C++ RTTI सुविधाओं की आवश्यकता नहीं है, लेकिन निश्चित रूप से उन्हें किसी प्रकार की आरटीटीआई की आवश्यकता है। फेंक दिया अपवाद अपवाद स्टैक पर कैच हैंडलर को अपने प्रकार की तुलना करने में सक्षम होना चाहिए, जिसमें किसी प्रकार का आरटीटीआई शामिल है। –

1

वे एक-दूसरे पर निर्भर नहीं हैं लेकिन वे दोनों भारी विशेषताएं हैं, इसलिए यदि कोई प्लेटफॉर्म खराब प्रदर्शन करता है तो शायद वे दोनों एक साथ कट जाएंगे।

+0

यह एक बहुत पुराना तर्क है। अपवादों को शून्य रनटाइम लागत होती है जब तक उन्हें फेंक दिया जाता है (जो केवल असाधारण मामलों में होना चाहिए)। आरटीटीआई समान रूप से केवल कोड आकार में वृद्धि है। यदि कोड आकार एक समस्या है तो वे दोनों आकार जोड़ते हैं, लेकिन वे सक्षम होने पर प्रदर्शन में बाधा नहीं डालते हैं। –

संबंधित मुद्दे