3
C++ 0x中的原子变量可以全局初始化吗?在C++中初始化原子变量0x
例如,
atomic_int turnX = 5;
int main(){
....
}
失败, 错误:删除功能“的std ::原子::原子(常量的std ::原子&)”
看着atomic_2.h确实给一个想法,这是不允许的。我是否正确地声明只能从函数中为原子变量赋值?
C++ 0x中的原子变量可以全局初始化吗?在C++中初始化原子变量0x
例如,
atomic_int turnX = 5;
int main(){
....
}
失败, 错误:删除功能“的std ::原子::原子(常量的std ::原子&)”
看着atomic_2.h确实给一个想法,这是不允许的。我是否正确地声明只能从函数中为原子变量赋值?
尝试:
atomic_int turnX(5);
这是一个constexpr构造函数,因此它应该被构造为恒定初始化(即,在负荷时间)。
但为什么'atomic_int turnX = 5;'不调用该构造函数?标准中的任何引号? – smerlin
@smerlin:我想象因为它使用了复制初始化。可能发生的事情是'5'被隐式转换为'atomic_int',然后'turnX'由非'constexpr'对象复制构建。 – 2011-07-18 00:22:13