Quantcast
Channel: Misunderstanding of atomic structs and pointers - Stack Overflow
Viewing all articles
Browse latest Browse all 4

Misunderstanding of atomic structs and pointers

$
0
0

My first question is: Is there any way to access the members of struct in an atomic<struct> object? For example, I get the compiler error:

struct std::atomic<node>’ has no member named ‘data’ a.data = 0; 

in this segment

struct node{  int data;  node* next;};int main(){  atomic<node> a;  a.data = 0;}

I can work around it by creating a temporary node like so:

  atomic<node> a;  node temp;  temp.data = 0;  a.store(temp);

but this doesn't seem very elegant.

The second question is, what if I have a pointer to an atomic object? Is there anyway to access the members of the node directly? Obviously the following does not compile, how would I change this to store 0 in the value of the node at b?

atomic<node> b = new node;b->data = 0;

This is a solution I've found, but again, is there a more elegant way of doing this??

atomic<node> *b;node temp;temp.data = 0;b->store(&temp);

And lastly, what is the difference between atomic<node*> and atomic<node>*


Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles



Latest Images