On Thursday, 4 August 2016 at 18:22:52 UTC, Mark "J" Twain wrote:
Marking a widget immutable is not the same as having an
ImmutableWidget. Can you see the difference?
Yes, you're thinking here of logical vs physical immutability.
I assure you there is. The immutable keyword only prevents data
manipulation, it does not change the interface. For simple
primitives, there is not much difference, but for larger
complex types, the immutable keyword doesn't cut it.
immutable Queue!int q1;
ImmutableQueue!int q2;
I don't get you well because D has actually the ability to use
immutable as part of the type. This feature is called the type
constructors.
immutable Queue : attribute or storage class
immutable(Queue): part of type