编译器优化是否可以给出左值而不是右值?

Sir*_*sto 2 c++

以下代码:

int x = 0;
x+0 = 10;
Run Code Online (Sandbox Code Playgroud)

不出所料产生编译错误

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

但是,是否保证所有符合标准的编译器都会产生类似的错误,或者编译器可以合理地将第2行视为

x = 10;
Run Code Online (Sandbox Code Playgroud)

哪个会编译?

Bau*_*gen 5

是的,它可以保证您收到错误(或者更确切地说,某些诊断).编译器优化永远不会使格式错误的代码形成良好.