私がこのコードを持っているとしましょう:
unsigned int func1();
unsigned int func2();
unsigned int func3();
unsigned int x = func1() | func2() | func3();
C ++は、func1()が最初に呼び出され、次にfunc2()、次にfunc3()が呼び出されることを保証しますか?
または、コンパイラーは、関数を任意の順序で呼び出すことができますか?
また、コンパイラは、必要に応じて、ここで短絡最適化を実装できますか?(たとえば、func1()が〜0を返した場合、コンパイラーは、戻り値がxに割り当てられた値に影響を与えない可能性があることを知っているため、func2()またはfunc3()をわざわざ呼び出さないことを決定できますか?)