Tim Verweij <tjverw...@gmail.com> wrote:
http://www.digitalmars.com/d/2.0/const3.html includes D examples like:
void foo(const int* x, int* y)
Is the information on the first page not updated for D2?
That seems correct.
Is the following correct? (this confuses me)
immutable int somefunc();
means the same thing as
int somefunc() immutable;
and not the same thing as
immutable(int) somefunc();
even though the first syntax looks very much like this:
immutable int x;
Yes. immutable always applies to the whole type, which in the function
case would be int function().
I think I understand the difference between const and immuable when
considering references and pointers, but how exactly is const different
from
immutable in:
const int x; versus immutable int x;
void somefunc(const int x); versus void somefunc(immutable int x);
const(int) somefunc(); versus immutable(int) somefunc();
It isn't. For non-reference types, immutable and const are
indistinguishable.
How does this system interact with in/out/ref etc? Can I for example have
"const ref int somefunc()"?
Absolutely.
--
Simen