2013-11-26 29 views

回答

8

ATOMIC_FLAG_INIT是一个实现定义的宏,保证在您发布的表达式中工作。例如,它可以方便地初始化您在名称空间范围内定义的atomic_flag。它还保证标志将被清除,并且如果标志本身具有静态存储持续时间,则初始化也将是静态的。

第二组语句是初始化,然后清除标志。由于atomic_flag的状态是未指定的后默认构造,它意味着该标志处于未指定状态,直到执行clear()

5

是(按29.7[atomics.flag] §4):

ATOMIC_FLAG_INIT应以这样一种方式,它可用于atomic_flag类型的对象初始化到透明状态来定义。对于静态持续时间的对象,该初始化应该是静态的。没有说明未初始化的对象是否具有初始状态设置或清除。

相关问题