为什么atomic_flag默认构造函数未指定状态?

Syn*_*xis 8 c++ constructor atomic

在使用时std::atomic_flag,必须小心,始终使用明确初始化它ATOMIC_FLAG_INIT,这很容易出错.但是有一个默认的构造函数......那么,是否有一个客观原因让默认构造函数将标志保留在非特定状态?

vll*_*vll 3

此链接(由dyp在评论中发布)描述了做出此决定的原因是,在某些架构上,零初始化atomic_flag将对应于设置状态,而在某些架构上,它将对应于清除状态。因此,定义atomic_flag未显式初始化的ATOMIC_FLAG_INIT最初处于不确定状态。