我有以下类和模板函数:
template <size_t num>
class String{
public:
char charArray[num];
};
template <size_t num,typename T>
void getString(String<num> & string,T number){
cout <<string.charArray<<' '<<number<<'\n';
}
然后我尝试执行如下显式实例化以将该实例化导出到 DLL,但最后发现它根本没有被实例化,因为我在我即将到的地方得到链接器未解析的外部符号的链接器错误导入并使用该函数(确切的链接器错误:“未解析的外部符号”__declspec(dllimport) void _ cdecl getString<5>(class String<5> &,unsigned char) ( _imp_??$getString@$04@@YAXAAV?$ String@$04@@E@Z) ") 因为在我打算实例化的点上没有指定“num”;首先我在想,也许因为String<num> & string
将被实现为指针,所以下面的语法应该是一个实例化,但似乎我错了。
template<size_t num>
__declspec(dllexport) void getString(String<num> & string,unsigned char number);
现在你建议我应该如何进行实例化,因为我肯定不会为地球上找到的每一个整数都这样做!!!。