जब एक समारोह टेम्पलेट एक तरीका है कि अपने इन्स्टेन्शियशन चलाता है में प्रयोग किया जाता है, (कुछ बिंदु पर) एक संकलक कि टेम्पलेट की परिभाषा को देखने की जरूरत है। और यही कारण है कि टेम्पलेट आमतौर पर इनलाइन फ़ंक्शंस का उपयोग करके हेडर फ़ाइल के अंदर लागू होते हैं।
तो जब तक उपरोक्त नियमों का पालन किया जाता है यह अभी भी इंटरफेस और कार्यान्वयन शीर्षक और स्रोत फ़ाइलों में अलग करना ठीक है।
संदर्भ:
सी ++ 03 मानक, § 14.7.2.4:
परिभाषा एक गैर निर्यात समारोह टेम्पलेट के, एक गैर निर्यात सदस्य समारोह टेम्पलेट, या एक गैर निर्यात सदस्य समारोह या एक वर्ग टेम्पलेट के स्थिर डेटा सदस्य हर अनुवाद इकाई जिसमें यह स्पष्ट रूप से instantiated है में मौजूद होगा।
स्रोत
2011-09-14 15:19:21
http://stackoverflow.com/questions/4315969/where-to-define-c-class-member-template-function-and-functors-that-instantiate/4316020#4316020 –
जबकि सवाल तकनीकी रूप से था अलस और निकोला ने जवाब दिया, मेरे लिए यह सिर्फ सवाल पूछता है कि आपने इसे एक सदस्य टेम्पलेट क्यों बनाया है। क्या यह सीपीपी फ़ाइल के नाम (नामित नामस्थान) में एक नि: शुल्क फ़ंक्शन टेम्पलेट के रूप में रखना बेहतर नहीं होगा? मैंने पाया है कि, समय के साथ, मैंने निजी सदस्य कार्यों को कम से कम, वर्ग के कार्यान्वयन फ़ाइल (नामित नामस्थान) के मुक्त कार्यों का अधिक से अधिक उपयोग किया। .. 'तो जब तक उपरोक्त नियमों का पालन किया जाता है यह अभी भी इंटरफेस और कार्यान्वयन शीर्षक और स्रोत files' में अलग करना ठीक है ** के विपरीत है ** >>' और वह कारण है, टेम्प्लेट उपलब्ध हैं: – sbi