如何从 std::atomic 中提取指针 T<T>?

How can I extract the pointer T from std::atomic<T>?

本文关键字:gt lt 指针 提取 std atomic      更新时间:2023-10-16

我有一个简单的类:

class List {
List *next;
int value;
};

和一个CCD_ 1。如何从Ltag中提取实际的List *?我试过Ltag->value = 80,但没用。选角效果不佳。

您可以利用std::atomic的转换运算符。

(*Ltag).value = 80;

或者使用load()显式获取该值。

Ltag.load()->value = 80;

PS:您使用的是带指针的std::atomic,这意味着在指向的对象上可能存在数据竞争。