std::pair<Object, OtherObject*> currentData;
void OnCallback()
{
Object object = getObject();
OtherObject* otherObject = new OtherObject();
currentData = std::make_pair(object, otherObject);
}
make_pair
は原子ですか? make_pair
フィールドをコピーするか、フィールドを戻り値からcurrentData
に移動しますか? currentData
の値に別のスレッドがアクセスしている場合、アクセスしたときにcurrentData
の値が不完全になる可能性はありますか?make_pairはアトミックですか?
残念ながら、make_pair
の標準ドキュメントに関連する情報はありませんでした。
"アトミック"の意味を説明できますか?明らかに 'std :: atomic'の意味では原子ではないからです。 – Brian
'std :: make_pair'はmove-semanticsを使用していますが、それは' std :: atomic'に準拠してアトミックであることを意味しません。 – ArchbishopOfBanterbury
'std :: atomic'の意味ではない場合、どういう意味ですか?あなたの引用符の意味は 'std :: atomic'のようなものだからです。 –