User defined types: Problems with ref
Chris
wendlec at tcd.ie
Thu Jan 23 07:26:24 PST 2014
On Thursday, 23 January 2014 at 15:24:19 UTC, Chris wrote:
> 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?
Sorry in main it is:
auto tree = new Tree();
auto tag = tree.createElement("first");
More information about the Digitalmars-d-learn
mailing list