What happened with C++11 and C++17? C++11とC++17で何が変わった? C++11:Squence point rules(C++03)の終わり, Sequence-before rules(C++11)の誕生 C++17: Sequence-before rulesの大幅な追加 ※C++11でSequence point rules自体の刷新が行われていました
C++17:諸々の副作用の評価順序規定 In a subscript expression E1[E2], every value computation and side-effect of E1 is sequenced before every value computation and side effect of E2 In a shift operator expression E1<>E2, every value computation and side-effect of E1 is sequenced before every value computation and side effect of E2 In every simple assignment expression E1=E2 and every compound assignment expression [email protected]=E2, every value computation and side-effect of E2 is sequenced before every value computation and side effect of E1 etc... いい感じに副作用が完了するようになった!