【原】error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string'

简介:

今天遇到一个非常难以排查的BUG,谷歌度娘都问过了依旧无解,最后自己重新尝试之后找到解决方案:

先看一下报错信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
1>.\lenz.cpp(2197)  error C2679: binary  '<<'  : no operator found which takes a right-hand operand of type  'std::string'  (or there is no acceptable conversion)
1>        D:\Program Files\VC\include\ostream(650): could be  'std::basic_ostream<_Elem,_Traits> &std::operator <<<wchar_t,std::char_traits<wchar_t>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
1>        with
1>        [
1>            _Elem= wchar_t ,
1>            _Traits=std::char_traits< wchar_t >
1>        ]
1>        D:\Program Files\VC\include\ostream(697): or  'std::basic_ostream<_Elem,_Traits> &std::operator <<<wchar_t,std::char_traits<wchar_t>>(std::basic_ostream<_Elem,_Traits> &,char)'
1>        with
1>        [
1>            _Elem= wchar_t ,
1>            _Traits=std::char_traits< wchar_t >
1>        ]<br>...... //一行出错后就会有一堆这样的With[]....出现,非常烦

网上搜了一下,很多人说是因为没有#include <string>的缘故,但是反复确认后发现我有做到。百思不得其解,还一度以为是不同文件的头文件重复引用导致<string>失效,但是这条说不通!后面冷静了之后,双击错误信息查看源码,发现基本上这些错误含有两个特征:

1.都是LOG4CPLUS_DEBUG等调试函数

2.参数都有string类型

然后我单独写了一小段程序验证了一下,好家伙,真是这样子。原来,LOG4CPLUS_DEBUG函数不能直接打印string对象,只支持其转换形式.c_str()。

解决方法:把所有的LOG4CPLUS_DEBUG函数中的string加个c_str()


本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/3745738.html,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 安全 API
C++ 17 新特性 C++ String View:了解C++ 17 std::string_view的使用场景
C++ 17 新特性 C++ String View:了解C++ 17 std::string_view的使用场景
260 2
|
6月前
|
前端开发 Java 数据库连接
Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String
Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String
|
2月前
|
网络协议 C++
解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
|
3月前
|
SQL
Typecho——Argument 1 passed to Typecho\Router::get() must be of the type string
Typecho——Argument 1 passed to Typecho\Router::get() must be of the type string
25 0
|
5月前
|
安全 C++
C++一分钟之-字符串处理:std::string
【6月更文挑战第25天】`std::string`是C++文本处理的核心,存在于`&lt;string&gt;`库中。它支持初始化、访问、连接、查找、替换等操作。常见问题包括空指针解引用、越界访问和不当内存管理。要安全使用,确保字符串初始化,用`at()`检查边界,用`.empty()`检查空字符串,且无需手动释放内存。高效技巧包括预先分配内存、利用互转函数以及使用迭代器。记得正确比较和遍历字符串以保证代码效率和安全性。
69 5
|
5月前
|
存储 程序员 C++
stoll函数和std::to_string函数
stoll函数和std::to_string函数
70 0
解决Missing cookie ‘JssionId‘ for method parameter of type String问题
解决Missing cookie ‘JssionId‘ for method parameter of type String问题
159 0
|
6月前
|
C++
C++ std::string类的使用
C++ std::string类的使用
79 0
|
6月前
Excel上传出错:TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string or an instan
Excel上传出错:TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string or an instan
|
人工智能 自然语言处理 语音技术
Invalid prop: type check failed for prop “index“. Expected String with value “5“问题解决
Invalid prop: type check failed for prop “index“. Expected String with value “5“问题解决
116 0