C++03標準1.9/6は、観察可能な動作を定義しています。
抽象マシンの観察可能な動作は、揮発性データへの読み取りと書き込みのシーケンス、およびライブラリI/O関数の呼び出しです。
そして、1.9 / 7は副作用を定義します:
揮発性左辺値(3.10)で指定されたオブジェクトへのアクセス、オブジェクトの変更、ライブラリI / O関数の呼び出し、またはこれらの操作のいずれかを実行する関数の呼び出しはすべて副作用であり、実行環境の状態の変化です。
副作用は観察可能な行動ですか?それらはどのように相互に関連していますか?