是否有可能哄std :: atomic <T>输出CMPXCHG16B

是否有可能哄std ::primefaces输出CMPXCHG16B我不想在Windows x64上使用primefaces互锁操作感兴趣的types,或者我只需要吮吸它并手动执行primefaces操作? 我可以得到GCC / Clang在Linux上这样做,所以我怀疑它只是与Microsoft标准库的一个问题。

struct Byte16 { int64_t a, b; }; std::atomic<Byte16> atm; Byte16 a = { 1, 2 }; atm.compare_exchange_strong(...); // This has a lock on Windows, not on Linux version of code 

在windows中使用__m128

 #include <emmintrin.h> //... std::atomic<__m128> a, c; __m128 b; a.compare_exchange_strong(b,c); ///...