User defined types: Problems with ref

Chris wendlec at tcd.ie
Thu Jan 23 07:24:00 PST 2014


Here's what I'm trying to do.

struct Element(T) {
     T x;
     T y;

     public void setX(T value) {
       x = value;
     }
     // More fancy functions ...
}

I store Element(s) in an array and want to pass each one by 
reference, which does not work.


class Tree {

     Element!string[] elements;

     public ref auto createElement(string name) {
       elements ~= Element!string(name);
       return elements[$-1];
     }
}

in main:

auto tag = Element!string("first");

The elements in Tree.elements and the ones in main are not the 
same, instead I obtain a copy of each.
How can I make them refer to the same Elements? If I have to add 
a .ptr property to Element, how do I do that? Is that possible at 
all or did I shoot myself in the foot with the template?




More information about the Digitalmars-d-learn mailing list