Le 14/05/2012 21:24, Steven Schveighoffer a écrit :
On Mon, 14 May 2012 13:08:06 -0400, Tove <[email protected]> wrote:

On Monday, 14 May 2012 at 16:53:24 UTC, Timon Gehr wrote:
On 05/14/2012 06:10 AM, Chris Cain wrote:
On Monday, 14 May 2012 at 02:57:57 UTC, Mehrdad wrote:
The problem is that it's unavoidable.

i.e. you can't say "don't mark it as const if it isn't const",
because, practically speaking, it's being forced onto the programmers
by the language.

You're really against const in this language, huh?


I guess this is not the most important point.
He has been trying to use const like in OO-ish C++.
This just does not work, because D const is detrimental to OO
principles when used that way.
The proposal is about _enforcing_ C++-like usage of const.

but c++ has the 'mutable' keyword as an easy escape route... which
saved me a bunch of times... guess one can emulate it with a
library-solution using nested classes? But... what about structs?

class Outer
{
int i = 6; // mutable

class Inner {
int y=0;

int foo() const
{
// ++y; // fail
return ++i; // look ma, mutable const
}
}
Inner inner;
this()
{
inner = new Inner;
}
alias inner this;
}

I have never seen this suggested before. I would guess that it might be
considered a bug, since you are accessing the outer instance via a pointer
contained in the inner instance.

But I like the approach (even if it is a bug)!

-Steve

Yes, you have similar bugs with delegates. This is a problem.

Reply via email to