次のように宣言された関数があります。
template <typename T>
T read();
次のように定義されます。
template <typename T>
T packetreader::read() {
offset += sizeof(T);
return *(T*)(buf+offset-sizeof(T));
}
ただし、 main() 関数で使用しようとすると:
packetreader reader;
reader.read<int>();
g++ から次のエラーが表示されます。
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
誰かが私を正しい方向に向けることができますか?