如何从std::atomic<T>中提取指针T?
How can I extract the pointer T from std::atomic<T>?
我有一些简单的class:
class List {
List *next;
int value;
};
还有一个std::atomic<List *> Ltag
。如何从 Ltag
中提取实际的 List *
?
我试过 Ltag->value = 80
但没有用。转换效果也不佳。
您可以利用 std::atomic
的转换运算符。
(*Ltag).value = 80;
或使用 load()
显式获取值。
Ltag.load()->value = 80;
PS:您正在使用 std::atomic
指针,这意味着指向的对象可能存在数据竞争。
我有一些简单的class:
class List {
List *next;
int value;
};
还有一个std::atomic<List *> Ltag
。如何从 Ltag
中提取实际的 List *
?
我试过 Ltag->value = 80
但没有用。转换效果也不佳。
您可以利用 std::atomic
的转换运算符。
(*Ltag).value = 80;
或使用 load()
显式获取值。
Ltag.load()->value = 80;
PS:您正在使用 std::atomic
指针,这意味着指向的对象可能存在数据竞争。