Inferred Type for Explicit Cast
Dicebot via Digitalmars-d
digitalmars-d at puremagic.com
Sat Dec 20 02:20:01 PST 2014
On Friday, 19 December 2014 at 15:17:04 UTC, Steven Schveighoffer
wrote:
> On 12/18/14 6:18 PM, Adam D. Ruppe wrote:
>> On Thursday, 18 December 2014 at 23:06:12 UTC, ketmar via
>> Digitalmars-d
>> wrote:
>>> the only thing this will help is to hide bugs, i believe.
>>
>> On the contrary, I find explicit casts hide bugs. Suppose you
>> write:
>>
>> size_t a = cast(int) b;
>>
>> It will compile and run. It'll mostly work. But the cast to
>> int probably
>> wasn't intended (it was probably written in 32 bit code and not
>> correctly ported to 64 bit).
>>
>> How often do we also write auto a = cast(T) b;? The difference
>> would be
>> the type is written on the left side instead of the right.
>> Might make an
>> important differnce when calling functions.
>>
>> I think the auto cast is a win all around.
>
> I have to agree with ketmar. Cast needs fixing, but this is not
> it. We need more control over what is cast, not less control.
>
> Your example unwittingly shows the issue :) casts are blunt
> instruments that force the compiler to abandon it's checks. I'm
> not as concerned about a changing it's type as I am about b.
> Change the type of b, and the compiler still happily generates
> possibly disastrous code.
>
> At this point, we can only say "abandon ALL checks." We can't
> finely tune this.
I'd like to have a cast where you must define both "from" and
"to" types precisely.
More information about the Digitalmars-d
mailing list