C++11 中的自然对齐 + volatile = atomic?

Natural alignment + volatile = atomic in C++11?

1) 下面是自然对齐指针的声明:

alignas(sizeof(void *)) volatile void * p;

相当于

std::atomic<void *> 

在 C++11 中?

2) 更准确地说,假设这种类型的指针将以与 C++11 中的 std::atomic 相同的方式工作是否正确?

不,volatile 不保证该位置将以原子方式写入或读取,只是编译器无法优化多次读取和写入。

在某些架构上,如果对齐正确,处理器将自动读取或写入,但这不是通用的,甚至不能通过处理器系列来保证。在可能的情况下,atomic 的内部实现将利用架构特性和 atomic 指令修饰符,所以为什么 not 使用 atomic,如果你的意思是 atomic ?