C++ 11:atomic <T> :: store和atomic_store <T>之间的区别是什么

Tro*_*yvs 4 c++ class function atomic c++11

一个是模板类的成员函数std::atomic,一个是模板函数,似乎它们做同样的事情.作为std一个类库,为什么它同时提供class和none-class版本,我认为同样的操作?

它们之间有什么真正的区别吗?

T.C*_*.C. 7

语义没有区别.免费功能是尝试实现与C11的源兼容性:

#ifdef __cplusplus
#include <atomic>
#define _Atomic(X) std::atomic<X>
#else
#include <stdatomic.h>
#endif

_Atomic(int) c;

int get_c(void) { 
    return atomic_load(&c); 
}
Run Code Online (Sandbox Code Playgroud)