链接器工具错误 LNK2019 - 模板类里声明友元函数

来源:互联网 发布:苹果虚拟定位源码 编辑:程序博客网 时间:2024/05/17 07:15

错误消息

在函数“function”中引用了无法解析的外部符号“symbol”

 

function 中找到了未定义的外部符号 (symbol)。若要解决此错误,请提供符号定义或移除引用它的代码。一般报错如下:

error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class test<int> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$test@H@@@Z)

 

 

网上看到的一种改法,报error LNK2001: unresolved external symbol的错!因为没有像sun手册中提到的“实际的模板声明必须在友元声明之前”中讲到的“由于operator<<有一个type array<T>的参数(模板类型形参?),因此在声明函数之前,必须声明array<T>。