क्या इसे आम तौर पर उत्पादन कोड में typeid
का उपयोग करने के लिए बुरी आदत माना जाता है? इसके अलावा, मैंने देखा typeid
type_info
देता है, जिसमें कुछ मेटाडाटा (जैसे प्रकार के नाम के साथ एक स्ट्रिंग) शामिल है; क्या इसे निष्क्रिय करने का कोई तरीका है?सी ++: उत्पादन कोड में टाइपिड का उपयोग
उत्तर
यह कहना मुश्किल है कि किसी विशेष भाषा सुविधा का उपयोग "खराब" या "अच्छा" है। यह वास्तव में इस बात पर निर्भर करता है कि आप इसका उपयोग कैसे करते हैं। typeid
का उपयोग करने में स्वाभाविक रूप से गलत नहीं है यदि यह नौकरी के लिए सही उपकरण है, लेकिन यदि आप जो भी समस्या हल कर रहे हैं, उसके लिए बेहतर समाधान है, तो आपको उस बेहतर समाधान के पक्ष में typeid
का उपयोग करने से बचना चाहिए।
अक्सर typeid
का उपयोग करना एक अच्छा विचार नहीं है क्योंकि इसका उपयोग अक्सर विरासत और आभासी कार्यों का उपयोग करके टाला जा सकता है। यदि आप इस तरह से अपने सिस्टम को अपडेट कर सकते हैं, तो ऐसा करना एक अच्छा विचार हो सकता है।
चाहे आप typeid
std::type_info
लौटने से बचें, इससे कोई प्रदर्शन समस्या नहीं होनी चाहिए। typeid
const std::type_info&
का मूल्यांकन करता है, इसलिए यह इसमें मौजूद किसी भी स्ट्रिंग जानकारी की गहरी प्रतिलिपि नहीं करता है। अधिकांश कार्यान्वयन में वास्तविक std::type_info
ऑब्जेक्ट की वर्चुअल फ़ंक्शन तालिका में संग्रहीत ऑब्जेक्ट होता है, इसलिए आंतरिक रूप से कोई प्रतिलिपि नहीं की जाती है।
- आप टाइपिड के साथ क्या कर रहे हैं इस पर निर्भर करता है। यदि आप इसका उपयोग कर रहे हैं जहां आपको पॉलिमॉर्फिज्म का उपयोग करना चाहिए, तो निश्चित रूप से यह बुरा है। हालांकि, ग्राहकों की मशीनों पर डीबग करने के लिए निशान या चीजों को डंप करना ठीक है।
- एकमात्र तरीका आपके कंपाइलर पर आरटीटीआई को अक्षम करना है। ऐसा करने का कोई मानक तरीका नहीं है। नोट यह
dynamic_cast
अक्षम भी करेगा।
- 1. सी ++ टाइपिड ऑपरेटर
- 2. उत्पादन कोड में स्ट्रीम
- 3. उत्पादन कोड में वर्कफ़्लो
- 4. उत्पादन कोड में एलआरयू कार्यान्वयन
- 5. उत्पादन कोड में स्टॉपवॉच का उपयोग किया जा सकता है?
- 6. टाइपइन्फो/टाइपिड आउटपुट
- 7. उत्पादन कोड
- 8. टाइपिड कीवर्ड खराब डिज़ाइन का उपयोग क्यों किया जाता है?
- 9. सी ++ स्रोत कोड में यूनिकोड का उपयोग
- 10. उत्पादन में कम सीएसएस ढांचे का उपयोग
- 11. सी # अन्य कोड का उपयोग
- 12. सी कोड का उपयोग करते हुए ifconfig
- 13. System.Diagnostics.Debug.WriteLine उत्पादन कोड
- 14. रूपरेखा कोड उत्पादन
- 15. उत्पादन वातावरण में HSQLDB का उपयोग
- 16. उत्पादन में MemoryStore का उपयोग करना
- 17. उत्पादन node.js कोड
- 18. सी # में देशी सी ++ कोड का उपयोग करना - std :: vector
- 19. उत्पादन कोड में हैमक्रिस्ट मैचर्स का उपयोग करने का कोई तरीका?
- 20. उत्पादन रिलीज कोड में यूनिट परीक्षण?
- 21. प्ले फ्रेमवर्क उत्पादन संस्करण में स्रोत कोड
- 22. सी # विधि समूह का उपयोग कोड
- 23. ओपनजीएल सी प्रोग्राम से वीडियो का उत्पादन
- 24. सी #/विजुअल स्टूडियो: उत्पादन और परीक्षण कोड प्लेसमेंट
- 25. सी # XSLT उत्पादन
- 26. उत्पादन कोड संपादित किए बिना सी ++ में गैर वर्चुअल तरीकों का मज़ाक उड़ा रहा है?
- 27. मैवेन में उत्पादन में उत्पादन से रिहाई
- 28. सी कहीं उत्पादन
- 29. कोई भी सी/सी ++ कोड बनाने के लिए MATLAB उपकरण का उपयोग किया? परिणामस्वरूप कोड उत्पादन के उपयोग के लिए व्यवहार्य है?
- 30. क्या मुझे उत्पादन कोड में Google के JSAPI का उपयोग करना चाहिए?
शायद आप लाइब्रेरी कॉल से 'टाइपिड' संदर्भ वापस नहीं करना चाहते हैं। आप 'टाइप' को किसी अन्य चीज़ में बदलने के लिए फ़ंक्शन लिखने से बेहतर होंगे, जैसे 'int', जहां आप मैपिंग को नियंत्रित करते हैं। साथ ही, इस बात की कोई गारंटी नहीं है कि 'टाइपिड' कंपाइलर संस्करण से संस्करण तक ही रहेगा। इसका मतलब यह भी है कि आप डिस्क पर 'टाइपिड' को संग्रहित नहीं करना चाहते हैं, सिवाय इसके कि कैश फ़ाइल में जो रनों के बीच संरक्षित नहीं है। –