--- Comment #3 from Stewart Gordon <s...@iname.com> 2009-10-30 06:39:03 PDT ---
(In reply to comment #2)
> (In reply to comment #1)
>> (In reply to comment #0)
>>> and in the case of const it is even considered well-defined
>>> behaviour to change their value after casting them to non-const.
>> What bit of the spec is this? Are you sure you aren't confusing D
>> with C(++)?
> You're right, I got things mixed up there. :)
> On the "const and immutable" page there is a section named
> "Removing Immutable With A Cast", where it says that "The immutable
> type can be removed with a cast [...] This does not mean, however,
> that one can change the data". It says nothing about const, which
> was what led me to believe that changing consts is not illegal, at
Since immutable is implicitly convertible to const, it's reasonable that the
same rule should apply to const.
My guess is that the reason for being able to cast away const/immutable is to
interface APIs that take pointers to mutable because they _may_ change the
data, but which can be controlled not to. The Windows API function DrawTextEx
is an example of this.
But I do wish the means of casting away const/immutable were explicit - see
> But I see now that the D/C++ comparison table at the bottom of the
> page has a similar statement for consts.
> But the rest still stands: It should be possible to take the
> address of both consts and immutables.
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------