Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 模板类无法识别友元运算符_C++_Class_C++11_Templates_Operator Overloading - Fatal编程技术网

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>&);