मैं एक समारोह तो जैसे घोषणा की है:सी ++ टेम्पलेट्स, अपरिभाषित संदर्भ
template <typename T>
T read();
और परिभाषित इसलिए की तरह:
template <typename T>
T packetreader::read() {
offset += sizeof(T);
return *(T*)(buf+offset-sizeof(T));
}
हालांकि, जब मैं अपने मुख्य() फ़ंक्शन में उपयोग करने का प्रयास करें:
packetreader reader;
reader.read<int>();
मैं जी ++ से निम्न त्रुटि मिलती है:
g++ -o main main.o packet.o
main.o: In function `main':
main.cpp:(.text+0xcc): undefined reference to `int packetreader::read<int>()'
collect2: ld returned 1 exit status
make: *** [main] Error 1
क्या कोई मुझे सही दिशा में इंगित कर सकता है?
संभव डुप्लिकेट घोषित करने और टेम्पलेट कार्यों को लागू कर रहा है जानते हैं [अपरिभाषित संदर्भ जब स्ट्रिंग (जीसीसी) के साथ उपयोग किए गए खाके कार्य करने के लिए] (http: // stackoverflow।कॉम/प्रश्न/614233/अपरिभाषित-संदर्भ-टू-फ़ंक्शन-टेम्पलेट-जब-प्रयुक्त-स्ट्रिंग-जीसीसी) – outis