Safer casts
Steven Schveighoffer
schveiguy at yahoo.com
Mon May 12 07:11:28 PDT 2008
"Simen Kjaeraas" wrote
> On Sat, 10 May 2008 07:59:23 +0200, Janice Caron wrote:
>> 1) convert or downcast: cast(Foo)bar
>> 2) reinterpret: cast!(Foo)bar
>> 3) constancy: cast(invariant)bar, cast(!const)bar
>
> For 3), what if I want to cast const(int*) to const(int)*?
> cast(const(int)*)cast(!const)foo?
>
> -- Simen
I'm not really joining this discussion (yet), but I just wanted to respond
to this.
If the purpose of your cast is to assign to a const(int) * variable, you
need no casts to do this. const(int*) implicitly casts to const(int)*:
int m = 5;
const(int *) ptr = &m;
const(int)* ptr2 = ptr; // OK
Why? Because I can't change anything through ptr2 that I couldn't change
through ptr.
Now, if you casting to be able to rebind ptr, then I think you would need
some crazy casting like you stated.
-Steve
More information about the Digitalmars-d
mailing list