【发布时间】:2018-11-14 18:45:25
【问题描述】:
我在我的 .h 中声明了一个模板化函数并在我的 .cpp 中实现:
//file.h
class FileReader{
template <class T> void Read( T *aValue );
};
//file.cpp
template<class T>
void
FileReader::Read( T *aValue )
{
//implementation
}
为了允许在我的 .cpp 中实现,我有
template void FileReader::Read<uint8_t>( uint8_t * );
template void FileReader::Read<uint16_t>( uint16_t * );
但是试图解决一个 doxygen 问题,有人指出我应该使用 here
template<> void FileReader::Read<uint8_t>( uint8_t * );
template<> void FileReader::Read<uint16_t>( uint16_t * );
这确实解决了 doxygen 问题,但它在链接时破坏了我的编译。
=>在我的 .cpp 中专门化我的函数模板并允许链接函数的正确语法是什么?
【问题讨论】:
-
@user463035818 我重新打开了这个问题,因为 OP 正确地尝试为一组特定的模板参数显式实例化类模板,但被误导了
-
@PiotrSkotnicki 谢谢。看了cpp和一些tempalte的东西,没仔细看