Compiling shared example.

Peter Sommerfeld noreply at rubrica.at
Fri Oct 26 14:22:06 PDT 2012


To learn about shared attribute I've copied nearly verbatim an
example from Andreis book. The code:

import core.atomic;

struct Data{
   int value;
}

shared struct SharedStack(T) {

   private shared struct Node{
     T data;
     Node* next;
     this(T value){data = value;};
   }
   private Node* root;

   // push

   void push(T value){
     auto n = new Node(value);
     shared(Node)* oldRoot;
     do {
       oldRoot = root;
       n.next = oldRoot;
     } while(!cas(&root,oldRoot,n)); // line 30
   }
   // ...
}

SharedStack!(Data) q;

void main(string[] args){

   Data m;
   q.push(m); // line 40
}

I got the following error (dmd 2.060 win):

(40) Error function main.SharedStack!(Data).SharedStack.push(Data value)
shared is not callable using argument types (Data)

(30) template core.atomic.cas does not match any function template  
declaration

What is wrong here ?

Peter


More information about the Digitalmars-d-learn mailing list