锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++开源社区 / error C2088: “<<”: 对于 class 非法

服务方向

人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

联系方式

固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究


error C2088: “<<“: 对于 class 非法

报错的源代码行是plog开源项目中的一个函数里的代码:

 template<typename T>
		        Record& operator<<(const T& data)
{
using namespace plog::detail;

m_message << data;
return *this; }

这代码在VS2010和VS2019下其它项目里正常编译通过,其它项目也是复杂环境下的项目,所以遇到问题很奇怪,配套报告的问题还有:

error C2678: 二进制“<<”:  没有找到接受“std::wstringstream”类型的左操作数的运算符(或没有可接受的转换)

表面意思是data和<<左边的wstringsteam不匹配,但是在其它项目里能成功编译,所以不可能不匹配,虽然data类型是模板类型,但现在C++标准和C++编译器都比较强大了,其它项目编译同样的代码没问题,这肯定不是问题。

后来只能归于环境问题,因为在编译项目里有其它源代码文件里有<<的重载,可能这重载和这里出现的<<的有冲突。

因为是日志功能,不是重要功能,我就把日志功能代码注释了不用,把问题解决了。

想想如果<<上能够带上命名空间,估计会解决这问题,但是<<带命名空间还没见过,希望C++标准制订人看到后能够改进下。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内