我知道这是一个经常被问到的问题,但由于有很多变种,我想重新陈述它,并希望有一个反映当前状态的答案.就像是
Logger& g_logger() {
static Logger lg;
return lg;
}
Run Code Online (Sandbox Code Playgroud)
变量lg的构造函数是否保证只运行一次?
我从以前的答案中知道,在C++ 03中,这不是; 在C++ 0x草案中,这是强制执行的.但我想要一个更明确的答案
c ++ 0x中的原子变量可以全局初始化吗?
例如
atomic_int turnX = 5;
int main(){
....
}
Run Code Online (Sandbox Code Playgroud)
失败并出现错误:删除函数'std :: atomic :: atomic(const std :: atomic&)'
查看atomic_2.h确实给出了一个不允许这样做的想法.我是否正确地声明原子变量只能从函数中赋值?