digitalmars.D.learn - Templated Binary Search Tree treats class as const, compiler complains
- Mark (25/25) Jan 21 2018 Hello,
- Mark (2/2) Jan 21 2018 Just realized that I commented out the creation of the BST
- Timon Gehr (4/8) Jan 21 2018 'in' means 'const scope', but it seems you need references that are
- Mark (6/14) Jan 21 2018 Ok, I was looking at the wrong stuff. Looking at varidiac
Hello, I re wrote my old BST. This one is far more complete and clean. However, It fails my final unittest when I try to stick a class in as its type. Link: https://dpaste.dzfl.pl/95e1ae49b25b Ive done this type of thing before, but it is giving me this error: BinarySearchTree.d(30): Error: function BinarySearchTree.BinarySearchTree!(Empty).BinarySearchTree.New (Empty item) is not callable using argument types (const(Empty)) BinarySearchTree.d(40): Error: function BinarySearchTree.BinarySearchTree!(Empty).BinarySearchTree.New (Empty item) is not callable using argument types (const(Empty)) BinarySearchTree.d(574): Error: template instance BinarySearchTree.BinarySearchTree!(Empty) error instantiating the New method is on line 94; I was looking through the Programming in D book, and can't find what this is really telling me. I have templated Stack and queue classes that don't give me these errors?? How do I make the BST accept classes like the one in my test? I don't deal with const stuff, so I'm not too sure what to look for concerning these problems. I'm still looking in the book/site for answers. Thanks!
Jan 21 2018
Just realized that I commented out the creation of the BST new link: https://dpaste.dzfl.pl/ce620cbee919
Jan 21 2018
On 21.01.2018 21:20, Mark wrote:Just realized that I commented out the creation of the BST new link: https://dpaste.dzfl.pl/ce620cbee919'in' means 'const scope', but it seems you need references that are allowed to mutate the incoming items. Remove the 'in' attribute from the parameters and your problem should disappear.
Jan 21 2018
On Sunday, 21 January 2018 at 20:46:56 UTC, Timon Gehr wrote:On 21.01.2018 21:20, Mark wrote:Ok, I was looking at the wrong stuff. Looking at varidiac functions in the book, I'm seeing what you're saying. I thought that was used as a keyword for variadic arguments. Thanks, that worked perfectly! Mark.Just realized that I commented out the creation of the BST new link: https://dpaste.dzfl.pl/ce620cbee919'in' means 'const scope', but it seems you need references that are allowed to mutate the incoming items. Remove the 'in' attribute from the parameters and your problem should disappear.
Jan 21 2018