On 2/19/2016 3:21 AM, Jonathan M Davis wrote:
D is definitely in a better boat in that it's easier to find and catch problems
with const, but it really doesn't do much more to actually guarantee that a
const object isn't being violated. Programmers are free to do horrible things
and mark it as @trusted,
The point of @trusted is it can be grepped for, and undergo extra scrutiny. The
idea is to minimize @trusted sections. With C++, it's the WHOLE PROGRAM that has
to be scrutinized.
This is ORDERS OF MAGNITUDE different.
I'm proposing that we have something like
@mutable struct S
{
int i;
@mutable int* refCount;
...
}
This does not work for opaque types.