【发布时间】:2011-08-05 15:43:44
【问题描述】:
在回复this question时,我遇到了这段代码……
#include <iostream>
int main()
{
int const income = 0;
std::cout << "I'm sorry your income is: " < income; // this is line 6
}
...其中包含一个错字。第 6 行的第二个(预期的)<< 运算符被意外写为<。
除此之外,编译代码 using GCC 4.3.4 或 4.4.3 会导致警告:
prog.cpp: In function ‘int main()’:
prog.cpp:6: warning: right-hand operand of comma has no effect
我的问题:为什么会产生那个特定的警告?它指的是哪个逗号运算符?
注意:我并不是提倡在 cout 声明中故意使用单个 <。 我只是在试图找出另一个问题的答案时偶然发现了这个警告“我”已经链接到,并且很好奇为什么编译器会生成它。
【问题讨论】:
-
您确定您发布了正确的代码吗?我得到:`warning C4552: '
-
是的,那是真正的代码 - 请参阅我在 IDEOne 上添加到示例的超链接。另请参阅其他问题,其他人也看到过类似的行为。
-
你可以使用:
void * v() { return 0; } ... v() < 0;来生成这个 - 我会说这是 gcc 中的一个错误。 -
在@Tim 的反馈后改写了问题
标签: c++ cout comma-operator