मेरे पास बहुत सारे टेम्पलेट कोड हैं। चूंकि खराब टेम्पलेट कोड संकलित होने तक संकलक त्रुटि को फेंक नहीं देता है, क्या कोई तरीका है कि मैं यह जांच सकता हूं कि संकलक वास्तव में 'संकलित' कौन सा टेम्पलेट कार्य करता है और जिसे पूरी तरह से अनदेखा किया गया था?क्या मैं जांच सकता हूं कि कौन से फ़ंक्शन टेम्पलेट्स हैं, या कम से कम एक बार तत्काल नहीं किया गया है?
संपादित करें 2:
तो एक विशेष वर्ग टेम्पलेट या समारोह टेम्पलेट एक बार किसी भी पैरामीटर प्रकार के लिए instantiated है, तो यह उस समय ठीक है। मैं फ़ंक्शन/क्लास टेम्पलेट्स की सूची चाहता हूं जो किसी भी रूप में कभी भी तत्काल नहीं थे।
एक विशेष उदाहरण निम्नलिखित है। वे दो अलग-अलग टेम्पलेट फ़ंक्शंस हैं, और मैं जानना चाहूंगा कि दोनों या दोनों कभी तत्काल नहीं हैं।
template <typename T_InputItr, typename T_Distance>
void advance(T_InputItr& aItr, T_Distance aN, bidirectional_iterator_tag)
template <typename T_InputItr, typename T_Distance>
void advance(T_InputItr& aItr, T_Distance aN, random_access_iterator_tag)
संपादित करें: वर्तमान में, कक्षाओं के लिए, मैं उन्हें .cpp
फ़ाइल में दृष्टांत मैन्युअल इस तरह:
template TClass<int>;
सभी प्रकार मैं में दिलचस्पी के लिए
कि अच्छी तरह से और अच्छा है।। लेकिन अगर मुझे ऐसा करना याद है। कभी-कभी मुझे बहुत से छोटे टेम्पलेट वर्ग/फ़ंक्शन लिखने की आवश्यकता होती है जहां मैं फ़ंक्शन/क्लास टेम्पलेट्स मैन्युअल रूप से कुछ तुरंत चालू करना भूल जाता हूं और बाद में सड़क को नीचे खोजता हूं। मैं संकलक को मुझे बताना चाहता हूं।
वैकल्पिक रूप से, अगर मुझे तत्काल (किसी भी पैरामीटर के लिए) फ़ंक्शन/क्लास टेम्पलेट्स की सूची मिल सकती है, तो मैं उस पूर्ण सूची में इसकी तुलना कर सकता हूं जिसे मैं कोड में grep कर सकता हूं।
एक और लाभ 'टेस्ट' करने के लिए होगा जो एक टेम्पलेट वर्ग में संकलित किए गए थे जो विशिष्ट कार्यों को चुनिंदा रूप से संकलित करने के लिए प्रकार के गुणों का उपयोग करते हैं। मैं निश्चित होना चाहता हूं कि आगे बढ़ने से पहले सही कार्य चुनने के लिए मेरा तर्क सही है।
और यदि आप इसे देख सकते हैं तो आप क्या करेंगे? – Jon
@ जोन: मैं इसे मैन्युअल रूप से डमी प्रकारों से तुरंत चालू करके परीक्षण करता हूं ताकि यह सुनिश्चित किया जा सके कि इसका वाक्यविन्यास सही है, कम से कम उन प्रकारों के लिए जिन्हें मैं जानता हूं। – Samaursa
तो आपका उत्तर है: एक टेस्ट प्रोजेक्ट बनाएं जहां आप * सभी * टेम्पलेट किए गए कार्यों को * सभी * प्रकारों के साथ आमंत्रित करते हैं जिन्हें आप जानते हैं। यदि प्रोजेक्ट संकलित नहीं करता है तो आपको कोई समस्या है। :) – Jon