作者:风 | 来源:互联网 | 2023-01-04 19:44
我遇到了一段基本上如下的代码:
#include
using namespace std;
int main()
{
cout <
输出:
0x601088 Hi.
首先,为什么有人会'cout <
值得一提的是,在我的机器上,上面的代码编译并执行没有错误.
但是,在运行相同版本的gcc 5.4.0的不同机器(服务器ssh连接)上执行更复杂的代码(执行与上述相同的操作)会在执行make时产生此错误(为了清晰起见缩短):
error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and ‘std::ostream {aka std::basic_ostream}’)
cout <
有什么想法吗?
1> François And..:
直到c ++ 11,才std::basic_ios
提供隐式转换void*
.此代码不能使用c ++ 11或更高版本进行编译.你基本上有这个,它与旧版本的gcc编译:
#include
int main()
{
void * x = std::cerr;
std::cout <