On Tuesday, 21 June 2016 at 02:24:03 UTC, jmh530 wrote:
So the line from the spec is
"Const types are like immutable types, except that const forms a read-only view of data. Other aliases to that same data may change it at any time."

I tried making an alias of a const variable and modifying it, but that didn't work. So presumably they mean something else.

yep, the spec was talking about data aliases in compiler terminology, not about D aliases. i.e. this is valid:

  int a;
  ...
  const(int)* pa = &a;

but this is not:

  int a;
  ...
  immutable(int)* pa = &a;


here, in former case we see `pa` as "alias to data".


so, what that quote essentially means is: "`const` pointers can point to mutable data, but `immutable` pointers cannot".

also, remember that slices are just "pointer, length" pairs, so when we are talking about "pointers" here, the same applies to slices too.

Reply via email to