ERROR C2676

直接上代码:

nl.h

#ifndef NL_H
#define NL_H

#include <iosfwd>

namespace ZJ
{
    /**
        Insert a newline character ‘\n‘
        without flushing the ostream
    */
    std::ostream& nl(std::ostream& os);
}

#endif // NL_H

nl.cpp

#include "nl.h"

using namespace std;

ostream& ZJ::nl(ostream& os)
{
    return os << ‘\n‘;
}

main.cpp

#include "nl.h"

#include <iostream>

using namespace ZJ;
using namespace std;

int main()
{
    cout << "newlines"<< nl << "between"<< nl
        << "each"<< nl << "word"<< endl;
    cout << "................................";

    return 0;
}

报错:

nl.cpp
src\nl.cpp(7) : error C2676: 二进制“<<”:“std::ostream”不定义该运算符或到预定义运算符可接收的类型的转换

原因:

nl.h中的#include <iosfwd>换成#include <iostream>

时间: 2024-11-05 16:00:27

ERROR C2676的相关文章

error C2512: “Name”: 没有合适的默认构造函数可用

error C2512: “Name”: 没有合适的默认构造函数可用 1 #include <iostream> 2 #include <string> 3 #include <cmath> 4 using namespace std; 5 6 class Name 7 { 8 public: 9 Name (char *fst,char * last ); 10 //Name (){}; 11 string GetName() const ; 12 void setN

C++学习之重载运算符1

C++除可重载函数之后,还允许定义已有的运算符,这样通过运算符重载可像处理数据使用它们. 先来个代码 1 #include<iostream> 2 using namespace std; 3 4 class num 5 { 6 public: 7 num(){n=1;} 8 ~num(){} 9 int get() const{return n;} 10 void set(int x){n=x;} 11 private: 12 int n; 13 }; 14 15 int main() 16

C语言常见错误中英文对照表

fatal error C1003:  error count exceeds number; stopping compilation 中文对照:错误太多,停止编译 分析:修改之前的错误,再次编译 fatal  error  C1004: unexpected end of file found 中文对照:文件未结束  分析:一个函数或者一个结构定义缺少“}”.或者在一个函数调用或表达式中括号没有配对出现.或者注释符“/*…*/”不完整等 fatal  error C1083:  Cannot

C语言常见错误

对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大家: fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译 分析:修改之前的错误,再次编译 fatal error C1004: unexpected end of file 

STL中map容器使用自定义key类型报错详解

引言 STL的map容器中,key的类型是不是随意的呢? 实践 编写测试代码 定义一个结构体来试试: struct a { char* pName; int m_a; }; map<a, int> mp; a a1; a1.m_a = 100; a1.pName = "a1"; a a2; a2.m_a = 200; a2.pName = "a2"; mp.insert(std::make_pair(a1, 1)); mp.insert(std::mak

STL中map错误用法一例

[GBK]0G's fans( me ) 13:34:26typedef struct _TX_DATA{ int len; unsigned char buff[0x100]; } TX_DATA, *PTX_DATA; typedef struct _RX_DATA{ int len; unsigned char buff[0x100]; } RX_DATA, *PRX_DATA; TX_DATA tx;RX_DATA rx;map<TX_DATA, RX_DATA> aMap; aMap

C++工程编译之“error LNK2001: 无法解析的外部符号”

今天一整天都在折腾“error LNK2001: 无法解析的外部符号”,就在头疼不已的时候,总算是找到问题原因了:各个动态链接库的编译方式必须统一才行,要不然很容易对库函数的引用产生冲突.简单来说就是,如果使用的第三方函数库编译方式采用/MD,那么主工程也应该使用/MD.我使用了libevent,而主工程默认采用/MT,所以需要忽略一大堆的函数库,我还纳闷呢,怎么会这么奇怪!!今天总算是解决了长久以来的困惑了. 下面引用一篇文章的描述:[Z]VC运行库版本不同导致链接.LIB静态库时发生重复定义

【转】Windows Error Code(windows错误代码详解)

本文来自: http://blog.sina.com.cn/s/blog_5e45d1be0100i0dr.html http://blog.sina.com.cn/s/blog_5e45d1be0100i0dt.html http://blog.sina.com.cn/s/blog_5e45d1be0100i0dv.html 这三篇,因为格式实在太乱,因此拿来整理了一下.找这个的原因是今天在改程序的时候蹦出来个WindowsError: [Error 2],也没有说这个东西是什么错误.于是百度

SpringBoot接口服务处理Whitelabel Error Page

转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50915979 <SpringBoot接口服务处理Whitelabel Error Page> <Maven依赖载入错误的情况分析> <Java Webproject转换为基于Maven的Webproject> <Maven Webproject执行异常:Maven.multiModuleProjectDirectory system propery