我发现了一段基本上执行以下操作的代码:
#include <iostream>
using namespace std;
int main()
{
cout << cerr << " Hi.";
return 0;
}
输出:
0x601088 Hi.
首先,为什么有人会使用“cout << cerr”,这没有意义。 其次,上面输出的含义是什么?
值得一提的是,在我的电脑上,上述代码可以编译并执行而不出现错误。
然而,在一个不同的机器上(服务器ssh连接),运行相同版本的gcc 5.4.0的一个更复杂的代码(与上面的代码做同样的事情)在进行make时产生了以下错误(为了清晰起见缩短了错误信息)。
error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream<char>}’ and ‘std::ostream {aka std::basic_ostream<char>}’)
cout << cerr << "DB: Field " + e.table + "[" + e.index + "]." + e.field
你对此有何想法?
cout
。第一件事在打印时并不是非常有意义的。 - Drew Dormanng++
而不是gcc
来编译 C++ 程序,对吗? - N. Ivanov