क्या कोई समस्या है जो एमएस की टी 4 टेम्पलेट कोड-पीढ़ी प्रणाली को सी ++ कोड उत्पन्न करने के लिए अनुपयुक्त कर सकती है?टी 4 टेम्पलेट्स - सी ++ कोड उत्पन्न करने के लिए उपयुक्त?
उत्तर
यह आपके द्वारा इच्छित किसी भी पाठ को उत्पन्न कर सकता है, जिसमें सी ++ कोड शामिल है।
थोड़ा लंबा जवाब अभी तक मुझे लगता है कि कुछ मिल सकती है यह दिलचस्प
मैं कहूंगा कि टी -4
साथ सी ++ उत्पन्न करने के लिए कुछ है कि सी पहले से ही की तरह साथ MetaProgramming करने के लिए उपकरण है ++ मुंहतोड़ जवाब हो सकता है उत्कृष्ट है:
प्रीप्रोसेसर
पूर्वप्रक्रमक और उच्च क्रम मैक्रो आप somewha प्राप्त कर सकते हैं का उपयोग करना टी आप टी -4 के साथ क्या क्या कर सकते हैं, लेकिन मैं कहना है कि टी -4 के कुछ बहुत ठोस लाभ हैं:
- टी -4 से उत्पन्न कोड डिबग करने के लिए आसान है और समझते हैं
- MetaProgramming साथ टी -4 पूर्वप्रक्रमक के साथ की तुलना में आसान है। पूर्वप्रक्रमक अधिकतम/मिनट की तरह मैक्रो आसान पर्याप्त कर सकते हैं लेकिन जब हम मॉडल संचालित टेम्पलेट्स के बारे में बात करना मुश्किल
- टी -4 यह आसान टेम्पलेट्स विकसित करने के लिए कर रही है पूर्वप्रक्रमक से अधिक शक्तिशाली है हो जाता है
- टी -4 के भाग के रूप क्रियान्वित किया जा सकता प्रक्रिया का निर्माण या मांग पर
आंशिक टेम्पलेट विशेषज्ञता
मैं आंशिक टेम्पलेट विशेषज्ञता चालें प्यार करते हो, लेकिन मैं अनुभव प्यार करता है हर कोई उन्हें बनाए रखने से बोलते हैं।
मैंने हमेशा रखरखाव बढ़ाने के प्रयास में कोड अनावश्यकता को कम करने का प्रयास किया। इसके अतिरिक्त मैं संभव होने पर रन-टाइम त्रुटियों पर संकलन-समय त्रुटियों को प्राथमिकता देता हूं। तो आंद्रेई अलेक्जेंड्रेसकू द्वारा आधुनिक सी ++ पढ़ने के बाद मैंने सोचा कि मुझे उत्तर मिला है।
मैंने इस पुस्तक से प्रेरित एक घटक लिखा जो महान काम करता था, फिर मैं छुट्टी पर गया। जब मैं वापस आया तो टीम ने घटक को फेंक दिया था और परंपरागत तकनीकों का उपयोग करके खुद को फिर से लिखा था। इसमें अधिक कोड था, बग्गीर था और साथ ही साथ प्रदर्शन नहीं किया था, हालांकि वे यह नहीं समझ पाए कि घटक को कार्यक्षमता कैसे जोड़नी है जिसे मैंने लिखा था और निर्धारित किया था कि उन्हें ऐसा करना था। कुछ भी बचाया नहीं जा सकता है। ये भी स्मार्ट लड़के थे।
क्या वे ऐसा करने में गलत थे? रखरखाव के मामले में मैं कहूंगा कि उन्होंने सही विकल्प किया है, भले ही यह मुझे परेशान करता है।
इस anechdote के साथ मेरा मुद्दा यह है कि टी -4 आंशिक टेम्पलेट विशेषज्ञता चाल के कुछ लाभ यह है:
- टी -4 से उत्पन्न कोड डिबग करने के लिए आसान है और समझते हैं
- टी -4 सरल
- टी -4 अधिक है शक्तिशाली
- टी 4 को बिल्ड-प्रोसेस या ऑन-डिमांड
- का निष्पादित किया जा सकता है यदि रखरखाव टी 4 टेम्पलेट के आसपास अपना सिर प्राप्त कर सकते हैं तो वे अभी भी कोड बचा सकते हैं (माई शुरू करें उत्पन्न कोड प्राप्त करना और टेम्पलेट को फेंकना)। ऊपर उपरोक्त में यह संभव नहीं था।
निश्चित रूप से सी ++ मेटाप्रोग्रामिंग प्रीप्रोसेसर और आंशिक टेम्पलेट विशेषज्ञता का संयोजन है।
कमियां
निश्चित रूप से टी -4 के साथ कमियां हैं;
- यह विजुअल स्टूडियो विशिष्ट (या मोनो विशिष्ट) है। हालांकि जेनरेट कोड को निश्चित रूप से जीसीसी और अन्य द्वारा संकलित करने के लिए बनाया जा सकता है।
- यह गैर मानक
- विजुअल स्टूडियो सी ++ प्रोजेक्ट्स टी 4 का समर्थन नहीं कर रहा है जो मुझे कोड frmo उत्पन्न करने के लिए एक डमी .NET प्रोजेक्ट का उपयोग करने के लिए मजबूर करता है।
सभी में
सभी अप रैपिंग मैं ब्याज उन्नत MetaProgramming सी ++ Preprocessor या प्रकार प्रणाली (मैं सरल कार्य यद्यपि के लिए उन्हें इस्तेमाल करते हैं) के साथ फैंसी चाल का उपयोग कर कर खो दिया है और के लिए टी -4 पर निर्भर करता है है कि इन दिनों।
यदि कोई सी ++ में इसे कैसे करना है, इस पर नमूना में रुचि रखते हैं तो आप InteractiveGraphics देख सकते हैं। यह सरल ग्राफिक्स करने के लिए सी #, वीबी, पावरशेल और स्मॉलबासिक के लिए एक लाइब्रेरी है। वहां मैं .NET और C++ के बीच संदेश भेजने के लिए सभी एपीआई और बॉयलरप्लेट कोड उत्पन्न करने के लिए टी 4 का उपयोग करता हूं (यदि मैं इसे टाल सकता हूं तो मैं सी ++/सीएलआई का उपयोग नहीं करता सब) एपीआई का वर्णन मॉडल से। एक नई विधि जोड़ना मॉडल को विस्तारित करने और सभी temlate फ़ाइलों को पुन: उत्पन्न करने के रूप में सरल है, तो मैं सी ++ में एक अमूर्त विधि लागू करता हूं और मजेदार सामान करता हूं।
धन्यवाद - टी 4 का उपयोग करके सी ++ उत्पन्न करने का एक उदाहरण हां :) के साथ मेरे प्रश्न का बहुत अधिक जवाब देता है। – mackenir
- 1. टी 4 टेम्पलेट्स
- 2. टी 4 टेम्पलेट्स
- 3. लैम्ब्डा भाव में टी -4 टेम्पलेट्स
- 4. टी 4
- 5. टी 4
- 6. टी 4 टेम्पलेट? - Fluent NHibernate
- 7. किसी को भी xsd से कक्षाएं उत्पन्न करने के लिए किसी भी टी 4 टेम्पलेट्स के बारे में पता है?
- 8. कक्षा पुस्तकालय में टी 4 टेम्पलेट्स और कनेक्शन स्ट्रिंग्स
- 9. सी # पॉको टी 4 टेम्पलेट, इंटरफेस उत्पन्न करते हैं?
- 10. सशर्त संकलन प्रतीकों का उपयोग टी 4 टेम्पलेट्स
- 11. एक ही क्लिक के साथ एकाधिक टी 4 टेम्पलेट्स चलाना
- 12. सी # कोड से कोड कैसे उत्पन्न करें
- 13. कोड जनरेटर या टी 4 टेम्पलेट्स, क्या वे वास्तव में बुराई हैं?
- 14. टी 4 टेम्पलेट्स में नेमस्पेस आउटपुट कैसे करें?
- 15. जब कोई एक्सएमएल फ़ाइल बदलती है तो टी 4 टेम्पलेट्स से कोड को पुन: उत्पन्न करने के लिए विजुअल स्टूडियो 2008 को कैसे मजबूर किया जाए?
- 16. आप कोड (आउटपुट नहीं) कैसे प्रदर्शित करते हैं। नेट टी 4 उत्पन्न करता है?
- 17. सी ++ टेम्पलेट्स: कोड ब्लूट
- 18. रन-टाइम (जैसे रेजर या टी 4) पर स्ट्रिंग पीढ़ी के लिए टेक्स्ट टेम्पलेट्स
- 19. टी 4 एलएलबीएलजेन प्रो इकाइयों पर पीओसीओ उत्पन्न करने के लिए?
- 20. स्लग उत्पन्न करने के लिए टी-एसक्यूएल फ़ंक्शन?
- 21. टी 4 कोड पीढ़ी, कस्टम असेंबली संदर्भ
- 22. टी 4
- 23. सी कोड उत्पन्न करने और एक पैकेट भेजने के लिए
- 24. वीएस -2010 में सी # 4.0 का उपयोग करने के लिए मैं टी 4 (टेक्स्ट टेम्पलेट्स) कैसे निर्दिष्ट कर सकता हूं?
- 25. आइकन उत्पन्न करने के लिए PHP कोड
- 26. टी 4 टेम्पलेट
- 27. कस्टम टी 4 जेनरेटर द्वारा उत्पन्न कक्षाएं गन्दा
- 28. सी ++ टेम्पलेट्स के लिए परीक्षण कैसे लिखें?
- 29. पीओसीओ और टी 4 टेम्पलेट्स के साथ ईएफ 4.0 का परीक्षण - नकली संदर्भ कैसे?
- 30. उत्पन्न एफ # कोड
हाँ। मुझे लगता है मूर्ख सवाल। हालांकि मैंने देखा कि आप निर्दिष्ट कर सकते हैं कि टेम्पलेट भाषा या तो वीबी या सी # है। यह संभवतः टेम्पलेट के आउटपुट के स्वचालित संकलन से संबंधित है? – mackenir
आपके टेम्पलेट्स सी # या वीबी का उपयोग करके उत्पन्न होते हैं लेकिन मुझे नहीं लगता कि आउटपुट के साथ इसका कोई संबंध नहीं है। –