On Wednesday, May 15, 2013 16:11:03 Don Clugston wrote: > > You kind of propose that "const int" to be a completely different type > > depending on initialiser. It is horrible. > > I have not said that. I've asserted that const member with an initializer, > when inside a struct, is ALWAYS a bug. > I agree that we need to get rid of the existing behaviour. But I argue it > should simply be an error, rather than replacing it with a misfeature.
Indeed. It really makes no sense to have const or immutable members in a struct. You simply render the struct completely useless under a variety of circumstances, because it can't ever be reassigned. It's one thing to create a const or immutable instance of a struct. It's quite another to have a single member which is const or immutable. You might as well just make such a member static. Now, as useless as it is, it's perfectly consistent with the rest of the language to have const or immutable members actually be part of the struct layout rather than effectively being treated as implicitly static, and the old behavior is definitely inconsistent with the rest of the language. But given how this will silently break who knows how much code, it's a terrible change. It would be far better to just disallow it. - Jonathan M Davis _______________________________________________ dmd-beta mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-beta
