在C++ 11中,如果我在一個線程中創建一個對象並將其設置爲std::atomic<T*>
,是否可以保證構造函數在執行之前原子變量是否設置?在一個線程中創建一個對象並使用std :: atomic訪問另一個對象
具體而言,在下面的代碼中,如果「if」語句計算結果爲true,是否保證Widget()構造函數已完成?
std::atomic<Widget*> widget = NULL;
在線程A:
widget = new Widget();
在線程B:
if(widget) {
// Do something with widget
}
該作業是施工後。 – WhozCraig
使用'nullptr' :) – melak47
我想你會發現這個很有用:http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1- 2 -12 –