Article about problems & suggestions for D 2.0

Mehrdad wfunction at hotmail.com
Wed Aug 31 22:06:31 PDT 2011


On 8/28/2011 2:49 PM, Andrei Alexandrescu wrote:
> On 08/28/2011 04:31 PM, dsimcha wrote:
>> On 8/28/2011 5:18 PM, Mafi wrote:
>>>> dynamicCast: Cast a class to another. This should throw something
>>>> derived from Error (not Exception) on failure instead of just 
>>>> returning
>>>> null. If you want null, just use the cast operator. Maybe we should
>>>> change its name, though. How about checkedCast or downCast?
>>>
>>> I think, to!someClass(x) works like you want dynamic cast to work.
>>
>> (Slaps self in forehead.) You're right, I forgot about that. Never mind.
>
> I think such an addition would be worthwhile. We'd only need 
> std.conv.reinterpretCast as that's a distinct way to convert types 
> than to!T. The function would only work if the source and target types 
> have the same size. Some overloads of it would be @safe (e.g. integral 
> or floating point target) whereas others won't (e.g. those that forge 
> pointers or references). Note that reinterpretCast would support 
> conversions not covered by cast, e.g. converting a chunk of memory to 
> a class object or one struct to another struct.
>
> Andrei
I don't know about others, but there's no way in hell that I will ever 
type "reinterpretCast" in my source code (let alone /import/ std.conv, 
just for a cast) unless the IDE was the one doing the typing.


More information about the Digitalmars-d mailing list