का अभ्यास और खोज मैं boost type erasure
पढ़ रहा हूं और मैं संभावित उपयोग को समझने की कोशिश कर रहा हूं। मैं इसे थोड़ा सा अभ्यास करना चाहता हूं, जबकि मैं विषय के बारे में कई दस्तावेज पढ़ रहा हूं (यह एक बड़ा दिखता है)। क्लाइंट और सर्वर के बीच डेटा का नेटवर्किंग/आदान-प्रदान करने वाले एप्लिकेशन का सबसे उद्धृत क्षेत्र। क्या आप कुछ अन्य उदाहरण या अभ्यास का सुझाव दे सकते हैं जहां मैं इस पुस्तकालय के साथ थोड़ा सा खेल सकता हूं?बूस्ट टाइप एरर
उत्तर
टाइप एरर असाधारण मात्रा में परिस्थितियों में उपयोगी है, उस बिंदु पर जहां इसे वास्तव में मौलिक रूप से अनुपलब्ध भाषा सुविधा के रूप में माना जा सकता है जो ब्रिज जेनेरिक और ऑब्जेक्ट उन्मुख प्रोग्रामिंग शैलियों।
जब हम सी ++ में एक वर्ग को परिभाषित, क्या हम वास्तव में परिभाषित कर रहे हैं दोनों एक बहुत ही विशेष type
और एक बहुत ही विशेष interface
है, और इन दो चीजों जरूरी संबंधित होने के लिए की जरूरत नहीं है कि। type
डेटा से संबंधित है, जहां interface
उस डेटा पर परिवर्तन के साथ सौदा करता है। सामान्य कोड, जैसे कि एसटीएल में, type
परवाह नहीं करता है, यह interface
परवाह करता है: आप std::sort
का उपयोग करके किसी भी कंटेनर या कंटेनर-जैसे अनुक्रम को सॉर्ट कर सकते हैं, जब तक यह तुलना और इटरेटर interface
प्रदान करता हो।
दुर्भाग्यवश, सी ++ में सामान्य कोड संकलन समय polymorphism की आवश्यकता है: templates
। यह ऐसी चीजों में मदद नहीं करता है जिन्हें रनटाइम तक नहीं जाना जा सकता है, या चीजें जिन्हें एक समान इंटरफ़ेस की आवश्यकता होती है।
एक साधारण उदाहरण यह है: आप एक ही कंटेनर में कई अलग-अलग प्रकार कैसे स्टोर करते हैं? सबसे सरल तंत्र सभी प्रकारों को एक शून्य * में स्टोर करना होगा, शायद कुछ प्रकार की जानकारी के साथ उन्हें अलग करने के लिए। एक और तरीका यह है कि इन सभी types
को पहचानने के लिए interface
है: पुनर्प्राप्ति। अगर हम retrieval
के लिए एक इंटरफ़ेस बना सकते हैं, तो प्रत्येक प्रकार के लिए इसे विशेषज्ञ बनाएं, फिर ऐसा होगा कि type
का हिस्सा मिटा दिया गया था।
any_iterator
यह करने के लिए एक और बहुत ही उपयोगी कारण है: यदि आप एक ही इंटरफेस के साथ विभिन्न कंटेनरों की एक संख्या से अधिक पुनरावृति करने की जरूरत है, तो आप इटरेटर की type
से बाहर कंटेनर के type
को मिटाने के लिए की आवश्यकता होगी। boost :: any_range इसका एक सूक्ष्म संवर्द्धन है, इसे इटरेटर से श्रेणियों तक विस्तारित करता है, लेकिन मूल विचार समान है।
संक्षेप में, किसी भी समय आप एक ही interface
के साथ एक एकल type
लिए एक समान interface
के साथ कई types
से जाने की जरूरत है, तो आप प्रकार विलोपन के कुछ फार्म की आवश्यकता होगी। यह रनटाइम तकनीक है जो संकलित समय टेम्पलेट्स को समझाती है।
हाय। इस बीच, संदर्भ के लिए मैंने थॉमस बेकर http://www.artima.com/cppsource/type_erasure.html http://thbecker.net/free_software_utilities/type_erasure_for_cpp_iterators/any_iterator.html –
दोनों से निम्नलिखित को भी पढ़ा है उत्कृष्ट संसाधन, लेकिन मैंने सोचा कि आप 'किसी भी' या 'any_iterator' या' any_container' से परे, टाइप एरर के लिए अधिक सामान्य आवश्यकता के बारे में जानना चाहेंगे। सदस्य फ़ंक्शन पॉइंटर्स केवल प्रतिनिधियों को लागू करने के लिए मौजूद हैं, यह मामला वर्चुअल फ़ंक्शंस मुख्य रूप से टाइप एरर को अनुमति देने के लिए मौजूद हो सकता है। यह एक अवधारणा का मौलिक है। – Alice
- 1. टाइप एरर: एक शून्य
- 2. टाइप एरर: कोणीय 2
- 3. जेस्ट - टाइप एरर:
- 4. टाइप एरर: Seq2Seq
- 5. टाइप एरर: अपरिभाषित
- 6. अनकॉटेड टाइप एरर: शून्य
- 7. टाइप एरर: लचीला प्रकार
- 8. कोणीयजेएस - फैक्टरी - टाइप एरर: अपरिभाषित
- 9. जावा टाइप एरर से बचें
- 10. पायथन - टाइप एरर: अनबाउंड विधि
- 11. टाइप एरर: पंक्ति अपरिभाषित है
- 12. टाइप एरर: छवि डेटा फ्लोट
- 13. जेस्ट + फायरबेस: टाइप एरर: अपरिभाषित
- 14. जावप और जेनेरिक 'टाइप एरर
- 15. टाइप एरर: jquery 1.9.1 संस्करण
- 16. बूस्ट। मैक ओएस एक्स पर पायथन: "टाइप एरर: विशेषता का नाम स्ट्रिंग होना चाहिए"
- 17. टाइप एरर: error.json फ़ंक्शन नहीं है
- 18. टाइप एरर: $ (...)। लाइव फ़ंक्शन नहीं है
- 19. टाइप एरर: 'अपरिभाषित' कोई ऑब्जेक्ट नहीं है
- 20. पिमोंगो एपीआई टाइप एरर: अवांछनीय dict
- 21. क्या एरर का रिटर्न टाइप हिस्सा है?
- 22. टाइप एरर: $ (...)। पर कोई फ़ंक्शन नहीं है
- 23. jQuery होवरइन्टेंट: 'अनकॉट टाइप एरर: अपरिभाषित'
- 24. 'टाइप एरर प्राप्त करना: ऑब्जेक्टआईडी (' ') फ्लास्क 0.10.1
- 25. टाइप एरर और वैरैडिक टेम्पलेटेड सदस्य फ़ंक्शन
- 26. पायथन टाइप एरर: 'str' ऑब्जेक्ट क्लास
- 27. सी ++ में टाइप एरर क्या है?
- 28. टाइप एरर: अपरिभाषित कोई निर्माता नहीं है
- 29. टाइप एरर: 'फ़ंक्शन' ऑब्जेक्ट में कोई विशेषता नहीं है '__getitem__'
- 30. जावास्क्रिप्ट "अनकॉट टाइप एरर: ऑब्जेक्ट फ़ंक्शन नहीं है" सहयोगी प्रश्न
पेज 16ff http://accu.org/var/uploads/journals/Overload116.pdf में टाइप एरर – doctorlove
का उपयोग करके डायनामिक सी ++ के बारे में एक लेख है, मैं इसे अभी पढ़ रहा हूं। सुझावों के लिए धन्यवाद। –
मैं नेटवर्किंग के लिए कहूंगा, क्लासिक रनटाइम पॉलीमोर्फिज्म टाइप एरर से अधिक उपयुक्त मुहावरे है। टाइप करें 'std :: shared_ptr' में deleters और आवंटकों को संभालने के लिए मिरर बहुत अच्छा है। –