How to get to a class initializer through introspection?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Aug 3 13:01:55 UTC 2020


On 8/3/20 4:04 AM, Johan wrote:
> On Sunday, 2 August 2020 at 23:59:23 UTC, Adam D. Ruppe wrote:
>> On Sunday, 2 August 2020 at 22:25:19 UTC, Andrei Alexandrescu wrote:
>>> Any ideas on how to do that via introspection? The fields are 
>>> accessible, but not their default values.
>>
>> It is ugly but possible right now to pull in the symbol via extern(C).
>>
>> See line 20 in my latest blog's example:
>>
>> http://dpldocs.info/this-week-in-d/Blog.Posted_2020_07_27.html#zero-runtime-classes 
>>
>>
>> ldc complains but it is a type mismatch not a fundamental barrier, I 
>> just didn't figure out the right thing to silence it yet.
>>
>>> It seems like __traits(type, getInitializer) might be necessary.
>>
>> but yes this would be generally nicer anyway imo.
> 
> That for that post Adam, I've been trying the same thing lately.
> It's needed to fix this: https://issues.dlang.org/show_bug.cgi?id=21097
> 
> https://github.com/weka-io/druntime/blob/9e5a36b0fcac242c4d160d3d7d0c85565aebe79f/src/core/internal/lifetime.d#L118 
> 
> 
> -Johan

Would it be effective to iterate through the .tupleof and initialize 
each in turn?


More information about the Digitalmars-d mailing list