का कारण बनती है मुझे सी ++ टेम्पलेट्स के संबंध में क्या हो रहा है, मुझे बहुत कम विचार है, लेकिन मैं एक ऐसे फ़ंक्शन को कार्यान्वित करने की कोशिश कर रहा हूं जो किसी दिए गए प्रॉपर्टी को संतुष्ट करने वाले तत्व के लिए वेक्टर खोजता है (इस मामले में, खोज दिए गए नाम के साथ एक के लिए)।टेम्पलेट समस्या लिंकर त्रुटि (सी ++)
template <typename T>
T* find_name(std::vector<T*> v, std::string name);
जब मैं संकलन, मैं जब मैं फ़ंक्शन को कॉल इस लिंकर त्रुटि मिलती है:: मेरे ज फ़ाइल में मेरे घोषणा इस प्रकार है फिर
Error 1 error LNK2019: unresolved external symbol "class Item * __cdecl find_name<class Item>(class std::vector<class Item *,class std::allocator<class Item *> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" ([email protected]@@@@[email protected]@[email protected]@@[email protected]@@@[email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z) referenced in function "public: class Item * __thiscall Place::get_item(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" ([email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) place.obj Program2
, मैं तो मैं टेम्पलेट्स के लिए नया हूँ पता नहीं क्या चल रहा है। Google के माध्यम से मुझे एलएनके2019 के सभी उदाहरण मिल चुके हैं, सही पुस्तकालयों का उपयोग नहीं कर रहे हैं, लेकिन चूंकि यह मेरा स्वयं का कार्य है, मुझे नहीं लगता कि यह क्यों हो रहा है।
इसके अलावा, एक संबंधित प्रश्न: क्या टेम्पलेट पैरामीटर बनाने का कोई तरीका है ताकि इसे किसी निश्चित वर्ग का उप-वर्ग होना चाहिए, यानी टेम्पलेट?
आप किस कंपाइलर का उपयोग कर रहे हैं? कुछ कंपाइलर्स आपको टेम्पलेट्स के लिए अलग-अलग फाइलों में घोषणा और परिभाषा को अलग करने से रोकते हैं। – Jordan
क्या आपने वास्तव में अपने टेम्पलेट फ़ंक्शन के लिए कार्यान्वयन लिखा था? – begray
आप std :: find या std :: find_if –