C++03 标准 1.9/6 定义了可观察的行为:
抽象机的可观察行为是它对易失性数据的读取和写入顺序以及对库 I/O 函数的调用。
然后 1.9/7 定义了副作用:
访问由 volatile 左值 (3.10) 指定的对象、修改对象、调用库 I/O 函数或调用执行任何这些操作的函数都是副作用,它们是执行环境状态的变化。
副作用是可观察到的行为吗?它们是如何相互关联的?
C++03 标准 1.9/6 定义了可观察的行为:
抽象机的可观察行为是它对易失性数据的读取和写入顺序以及对库 I/O 函数的调用。
然后 1.9/7 定义了副作用:
访问由 volatile 左值 (3.10) 指定的对象、修改对象、调用库 I/O 函数或调用执行任何这些操作的函数都是副作用,它们是执行环境状态的变化。
副作用是可观察到的行为吗?它们是如何相互关联的?