J'essaie de mettre en œuvre une structure de données concurrente, comme ci-dessous.Pourquoi ne puis-je pas accéder au champ suivant dans cette structure?
struct Node;
struct NodeList;
struct NodeAtomic{
struct Node* next;
};
struct NodeListAtomic{
struct NodeList* next;
};
struct Node{
atomic<struct NodeAtomic> ptr;
};
struct NodeList
{
struct Node listhead;
atomic<struct NodeListAtomic> ptr;
};
J'accède la variable de l'objet comme celui-ci:
struct Node *temp;
temp->listhead.ptr.next.load();
Mais je reçois l'erreur suivante:
error: ‘struct std::atomic<NodeAtomic>’ has no member named ‘next’
Quelqu'un peut-il s'il vous plaît indiquer où cela est faux?
Je vois! C'était très stupide de ma part! Je n'ai juste pas remarqué ça. Merci pour votre temps. –