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