C++ 模板类无法识别友元运算符
因此,我试图在模板类中包含输入和输出运算符的两个友元声明,但每次编译代码时,它似乎都无法识别该运算符。 这是我的头文件 错误:严重性代码说明项目文件行抑制状态C++ 模板类无法识别友元运算符,c++,class,c++11,templates,operator-overloading,C++,Class,C++11,Templates,Operator Overloading,因此,我试图在模板类中包含输入和输出运算符的两个友元声明,但每次编译代码时,它似乎都无法识别该运算符。 这是我的头文件 错误:严重性代码说明项目文件行抑制状态 错误LNK2019未解析的外部符号“class std::basic_ostream&__cdecl运算符类中的友元应为完全专业化: friend std::ostream& operator<< <>(std::ostream&, Screen&); friend std::ostrea
错误LNK2019未解析的外部符号“class std::basic_ostream&__cdecl运算符类中的友元应为完全专业化:
friend std::ostream& operator<< <>(std::ostream&, Screen&);
friend std::ostream和操作符
在范围内(您的代码就是这样)。请逐字复制并粘贴所有编译器消息。
#include"Screen.h"
#include<string>
#include<iostream>
using std::cout; using std::endl;
using std::string;
int main(){
Screen<5,5> myScreen('X');
myScreen.move(4, 0).set('#').display(cout);
cout << endl;
myScreen.display(cout);
cout << endl;
cout << myScreen << endl;
}
public:
... other code
template<std::string::size_type w, std::string::size_type h>
friend std::ostream& operator<<(std::ostream& os, Screen<w, h>& item) {
os << item.content;
return os;
}
friend std::ostream& operator<<<w,h>(std::ostream&, Screen&);
friend std::ostream& operator<< <>(std::ostream&, Screen&);
friend std::ostream& operator<< <> (std::ostream&, Screen&);
--
std::ostream& operator<< (std::ostream&, Screen<3,5>&);
friend std::ostream& operator<< <w, h> (std::ostream&, Screen&);
template<std::string::size_type w, std::string::size_type h>
std::ostream& operator<<(std::ostream&,Screen<w, h>&);