说我有这个代码:
unsigned int func1();
unsigned int func2();
unsigned int func3();
unsigned int x = func1() | func2() | func3();
C++ 是否保证首先调用 func1(),然后是 func2(),然后是 func3()?
或者编译器是否允许以任何感觉的顺序调用函数?
另外,如果编译器愿意,是否允许在这里实现短路优化?(例如,如果 func1() 返回 ~0,编译器是否可以决定不打扰调用 func2() 或 func3(),因为它知道它们的返回值不可能影响分配给 x 的值?)