मान लीजिए कि मेरे पास fileA.h
है जो टेम्पलेट फ़ंक्शन SomeFunc<T>()
के साथ classA
श्रेणी घोषित करता है। यह फ़ंक्शन सीधे हेडर फ़ाइल में लागू किया गया है (जैसा कि टेम्पलेट फ़ंक्शंस के लिए सामान्य है)। अब मैं (SomeFunc<int>()
के लिए) fileA.C
(यानी हेडर फ़ाइल में नहीं) में एक विशेष कार्यान्वयन जोड़ता हूं।सी ++ फ़ंक्शन के टेम्पलेट विशेषज्ञता की दृश्यता
यदि अब मैं किसी अन्य कोड (शायद किसी अन्य लाइब्रेरी से) SomeFunc<int>()
पर कॉल करता हूं, तो क्या यह सामान्य संस्करण या विशेषज्ञता कहलाता है?
मुझे अभी यह समस्या है, जहां कक्षा और फ़ंक्शन एक लाइब्रेरी में रहते हैं जिसका उपयोग दो अनुप्रयोगों द्वारा किया जाता है। और एक एप्लिकेशन सही ढंग से विशेषज्ञता का उपयोग करता है, जबकि एक और ऐप जेनेरिक फॉर्म का उपयोग करता है (जो बाद में रनटाइम समस्याओं का कारण बनता है)। अंतर क्यों? क्या यह लिंकर विकल्प आदि से संबंधित हो सकता है? यह जी ++ 4.1.2 के साथ लिनक्स पर है।
Damnit, उपयोगकर्ता नाम के स्वत: जोड़ने काम नहीं करता। –