2013-01-07 29 views
6

डी में स्रोत कोड (संकलन और लिंकिंग) की प्रक्रिया सी/सी ++ से अलग होती है, खासकर इनलाइन फ़ंक्शंस, डी मॉड्यूल सिस्टम (हेडर के बजाए) और टूल बनाने के संबंध में। डी में टेम्पलेट इंस्टॉलेशन का पुन: उपयोग कैसे किया जाता है?डी बिल्ड प्रक्रिया

+1

मुझे लगता है कि टेम्पलेट इंस्टॉलेशन का उपयोग डी में बहुत अधिक किया जाता है जैसे बाहरी टेम्पलेट्स सी ++ 11 में काम करते हैं। इस बारे में मैं इस चर्चा में योगदान कर सकता हूं। –

+0

मुझे एक से अधिक फ़ाइल संकलन में विश्वास है, टेम्पलेट तत्काल केवल एक बार जेनरेट ऑब्जेक्ट फ़ाइल में संग्रहीत किया जाता है। लेकिन मुझे यकीन है कि एक जवाब लिखने के लिए पर्याप्त नहीं है। इस तरह संकलित करते समय, इनलाइन फ़ंक्शंस हमेशा मॉड्यूल सीमाओं को पार करते हैं, जैसे कि यदि लिंक-टाइम कोड पीढ़ी का उपयोग C++ में किया गया था। IMHO! – ponce

+0

@ponce कोई लिंक टाइम कोड जेन नहीं है वर्तमान में केवल कुछ ऑप्टिमाइज़ेशन –

उत्तर

2

यह है कि बहुत अलग नहीं है, प्रत्येक मॉड्यूल जो तब एक साथ जुड़े हुए हो जाता है अपने स्वयं के obj फ़ाइल जो IIRC कि C/C++ प्रक्रिया से अलग नहीं है करने के लिए संकलित हो जाता है

मुख्य अंतर यह है तथापि में है कि झूठ आयात प्रतीकात्मक सी पूरी फ़ाइल #include जो headerfiles करने की आवश्यकता समाप्त (हालांकि headerlike .di फ़ाइलों के लिए विकल्प बंद स्रोत एपीआई के लिए है)

टेम्पलेट्स वास्तव में फ़ाइलों के लिए उपलब्ध में शामिल किया जाना चाहिए के बजाय कर रहे हैं कंपाइलर हालांकि (जैसे उन्हें सी ++ के लिए हेडर में होना चाहिए)