Head Const
Walter Bright via Digitalmars-d
digitalmars-d at puremagic.com
Fri Feb 19 13:53:16 PST 2016
On 2/19/2016 4:38 AM, Jonathan M Davis wrote:
> Yes, as long as you have the source code, finding @trusted violations is _way_
> easier in D than it is in C++, but the fact that it's possible to cast away
> const and mutate still means that the compiler can't actually guarantee that an
> object is not mutated via a const reference to it.
All languages that guarantee safety have this issue - Rust and C# have 'unsafe'
blocks, and Java has the JNI C interface. Even Haskell has its Foreign Function
Interface.
The idea is to encapsulate such, which D does as well as any other language.
This is not a defect of D.
>> This does not work for opaque types.
>
> Why not? I would expect the opaque type to have to have it too, e.g.
>
> @mutable struct S;
That would mean you're proposing '@mutable const' as a type constructor, which
you'd earlier said otherwise.
More information about the Digitalmars-d
mailing list