On 2011-03-29 01:38, Ishan Thilina wrote: > == Quote from Steven Wawryk (stev...@acres.com.au)'s article > > > Your environment looks wrong. Note that > > /usr/lib/gcc/x86_64-linux-gnu/4.3.5/../../../../include/d/4.3.5 > > is equivalent to > > /usr/include/d/4.3.5 > > so I expect it can't find container.d > > > > On 29/03/11 04:54, Ishan Thilina wrote: > > > I am using DGC due to the problems I'm witnessing with DMD. I tried a > > > similar approach. But the following error comes. > > > > > > " > > > > > > structures.d:4: Error: module container cannot read file > > > 'std/container.d' import path[0] = > > > /usr/lib/gcc/x86_64-linux-gnu/4.3.5/../../../../include/d/4.3.5/x86_64- > > > linux-gnu import path[1] = > > > /usr/lib/gcc/x86_64-linux-gnu/4.3.5/../../../../include/d/4.3.5 > > > > > > " > > > > > > I dont know what is wrong. I'll try to compile in Windows and let you > > > know. > > > > > > @David : > > > > > > Thanks for the clarifications :) > > > >structures.d:4: Error: module container cannot read file 'std/container.d' > >import path[0] = > >/usr/lib/gcc/x86_64-linux-gnu/4.3.5/../../../../include/d/4.3.5/x86_64-lin > >ux-gnu import path[1] = > >/usr/lib/gcc/x86_64-linux-gnu/4.3.5/../../../../include/d/4.3.5 > > Ok, now std.container can be imported inside windows. The problem has been > that windows has used dmd to compile rather than using dmd2. > But I get an error message. I think it's what davis said. > > >On 2011-03-28 07:48, David Nadlinger wrote: > >> --- > >> import std.container; > >> import std.stdio; > >> > >> void main() { > >> > >> auto rb = redBlackTree(4, 1, 2, 3); > >> foreach (e; rb) { > >> > >> writeln(e); > >> > >> } > >> > >> } > >> --- > > > >I believe that the redBlackTree function is only in the git repository at > >present (so, it'll be in the next release), so if he's using dmd 2.052, > >that particular way of creating a RedBlackTree won't work. > > So how can I declare a redBlackTree..? > > > > It seems that there's no importing problem inside windows now. But the > problem still there in Linux. I'm using GDC to compile.
I believe that you'd just do auto rb = RedBlackTree(4, 1, 2, 3); The problem with the version in dmd 2.052 though is that you can declare one if there isn't anything in it. Or at least, if you do, you'll run into problems, because it won't have been properly initialized (due to the lack of default constructor). The version in git (which can be gotten here if you want to try it out: https://github.com/D-Programming-Language/phobos/ - though given how much trouble that you've been having getting dmd to work, I'm not sure that you want to try building druntime and Phobos yourself) changes RedBlackTree to a class, which fixes the problem. And by adding the function redBlackTree, it manages to make creating one a lot more flexible. The current version should work just fine though. It just isn't quite as nice (but the first version of Phobos with RedBlackTree was either 2.051 or 2.052, so it's a quite recent addition to std.container). - Jonathan M Davis