为什么编译器不会在以加法运算符开头的行中停止?

Joe*_*rag 2 c++ visual-c++

我只是做了一些重构,并为自己创建了一个错误:

int i = 2;
    + 7;
    + 4;
Run Code Online (Sandbox Code Playgroud)

这是简化的; 第1行和第2行末尾的附加分号并不是那么明显 - 至少对我来说:).

我无法弄清楚为什么编译器没有抓住它.在C++中是否有一些有效的操作,它开始使用加法运算符?

use*_*819 5

没有添加到添加运算符的东西只是意味着积极因此+2;只是意味着(+2);只是有一条线i;或类似的东西.没有什么"错误",但也没有任何事情发生.如果你使用带有-Wall指定的gcc在*nix下编译你将得到warning: statement has no effect通常很好知道的错误,因为它通常是一个标志,你打算做某事的声明实际上并没有按照它应该做的那样.