Cast to left hand side

tcak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Nov 9 21:00:23 PST 2014


On Sunday, 9 November 2014 at 21:47:03 UTC, eles wrote:
> On Sunday, 9 November 2014 at 19:00:01 UTC, tcak wrote:
>
> I am also strongly in favor of introducing an "uncast". For 
> example, in C++'x const_cast and in D's cast for removing, for 
> example immutability:
>
> immutable int* p = ...;
> int* q = cast(int*)p;
>
> I think the goal is not clearly expressed with this cast. It 
> does not show that it's intension is to remove immutability and 
> otherwise let that type unchanged. If later a mismatch is 
> introduced between the left and the right type of data, that 
> inoffensive cast could create problems by hiding an error that 
> should have been spotted.
>
> Something like that would be more expressive:
>
> immutable int* p = ...;
> int* q = uncast(immutable)p;
> //or
> int* q = cast(~immutable)p;
>
> This way, invalid implicit conversions from p's type to q's 
> type would be spotted.

Well, my question was actually on-purpose automatic casting. 
Something like:

b = autocast( a );

Because I am auto casting with a keyword, compiler shouldn't 
complain about it as well. This can also solve "uncast" thing.


More information about the Digitalmars-d-learn mailing list