detect implicitly convertible typeid's?
bitwise
bitwise.pvt at gmail.com
Mon Sep 25 14:43:16 UTC 2017
On Monday, 25 September 2017 at 13:20:03 UTC, Steven
Schveighoffer wrote:
> On 9/23/17 11:52 AM, bitwise wrote:
>> Is it possible to tell if two objects represented by
>> TypeInfo's are convertible to each other?
>>
>> Basically, is there a built in way to do this?
>>
>> int x;
>> long y;
>> assert(typeid(x).isImplicitlyConvertibleTo(typeid(y));
>
> I would say no. There isn't any function/data to detect that.
>
> Keep in mind that TypeInfo is generated by the compiler, and
> only contains what the developers of the runtime have wanted it
> to contain. It's not a full-fledged reflection system.
Something like this along side TypeInfo.postblit and
TypeInfo.destroy would actually be useful:
TypeInfo.cast(void* src, void** dst, TypeInfo dstType);
I wonder though...does a cast even resolve to a single function
call at compile time, or is there scattered context-dependent
code throughout the compiler to insert the appropriate logic?
Based on current trends though, it seems like
TypeInfo.postblit/destroy may be on the chopping block...any idea?
> However, you COULD build something in RTInfo that could place
> that inside the TypeInfo. That is what RTInfo was added for.
The comments say it's for precise GC:
https://github.com/dlang/druntime/blob/cc8edc611fa1d753ebb6a5fabbc3f37d8564bda3/src/object.d#L312-L314
Doesn't that mean my code could some day get clobbered if I put
it there and precise GC is implemented?
Also, don't I need to compile a custom runtime for that?
Thanks
More information about the Digitalmars-d-learn
mailing list