use of struct vs class

mark mark at qtrac.eu
Sat Mar 7 15:46:23 UTC 2020


Steve, thank you once again. Now it compiles & runs!

I now create my tree like this:

auto debs = new RedBlackTree!(Deb, (a, b) => a.name < b.name);

(I feel that the rbtree docs are inadequate regarding creating 
new empty trees, so have submitted a bug report:
https://issues.dlang.org/show_bug.cgi?id=20646 )

The other problem I had was that the Deb I created on the stack 
had its own internal rbtree that was always null.

To address this I changed tags in the Deb struct to this:

auto tags = new RedBlackTree!string;

so it always creates a new empty tree. And I renamed clear to 
reset and now do this:

     void reset() {
         name = "";
         ...
         tags = new RedBlackTree!string;
         ...
     }

I assume that I can safely rely on the GC to clean up for me.

So now I think I can safely use the pattern (1., repeat 2.1, ... 
) described earlier: certainly it builds and runs.

Next I'll have to try really populating the Debs including their 
tag trees and populating the debs tree of Debs structs.

Thank you.





More information about the Digitalmars-d-learn mailing list