似乎要使用 CMPXCHG16B,必须定义 _STD_ATOMIC_ALWAYS_USE_CMPXCHG16B = 1 以便使用这些指令。
为什么这是默认设置?除非我阅读整个 atomic.h 标头,否则我永远不会发现这一点。
STL 中还有哪些其他全局定义?是否有一份清单可供审查,以便人们能够可靠地了解这些实施细节?
c++ x86-64 visual-c++ compare-and-swap stdatomic
c++ ×1
compare-and-swap ×1
stdatomic ×1
visual-c++ ×1
x86-64 ×1