On Monday, June 03, 2013 01:35:54 Andrej Mitrovic wrote: > On 6/3/13, Andrei Alexandrescu <[email protected]> wrote: > > I think I have an understanding how that dual nature works for C++, but > > not in D. Could you please give more detail. Then we can merge that with > > the documentation, so you wouldn't have wasted time. > > Oh yes, and then you can close this: > http://d.puremagic.com/issues/show_bug.cgi?id=9970 > > But from my limited understanding: > > new const(C) -> type constructor > cast(const(C))(new C) -> type modifier > void foo(const(C)) -> type modifier > > Correct? No?
Well, the first one is the only one constructing with const, so I could see an argument that that's the only case where const is used as a type constructor, but it's arguably used as a type qualifier in all 3 cases. However, I think that the only one that even _might_ be argued as a storage class is the 3rd one's as the other two actually relate to changing the type. I would think that it would be simpler though just to always call const a type qualifying and not a storage class, since it's qualifying the type even when it's arguably being used as a storage class. We can just say that type qualifiers are part of the type and storage classes aren't and get a nice clean distinction between the two. Unless I'm missing something? - Jonathan M Davis _______________________________________________ dmd-beta mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-beta
