【发布时间】:2016-01-17 15:33:57
【问题描述】:
[intro.execution]/12 中的 volatile 一词有什么相关性?
读取由
volatileglvalue ([basic.lval]) 指定的对象, 修改对象、调用库 I/O 函数或调用 执行任何这些操作的函数都是副作用,其中 是执行环境状态的变化。评估 一个表达式(或一个子表达式)通常包含两个值 计算(包括确定对象的身份 glvalue 评估并获取先前分配给 prvalue评估的对象)和副作用的开始。当一个 调用库 I/O 函数返回或访问volatile对象被评估,副作用被认为是完整的,甚至 尽管调用隐含的一些外部动作(例如 I/O 本身)或通过 volatile 访问可能尚未完成。
【问题讨论】:
-
volatile表示读取是无法优化的“可观察行为”。
标签: c++ language-lawyer volatile