On Friday, 20 May 2016 at 16:09:54 UTC, chmike wrote:
This is confusing and frustrating. In C++ we can write MyInfos { . . . // one is a constant pointer to a constant object of type Obj Obj const * const one; . . . } And in main() Info const * x1 = MyInfos.one; x1 i a modifiable pointer to a constant object of type Info. Is this possible in D ? I couldn't find how to do that.
I should have addressed this above. This is another of the those things that will bite you if you are thinking in C++ when writing D. Classes in D are references types, so right out of the gate they can not be treated as C++ classes. You absolutely can have modifiable pointers to const and immutable data with built in types and structs, but not with classes. Always think of const(classref) as const(class*). There is no such thing as const(class)* in D.