Class methods in D?

Simon s.d.hammett at gmail.com
Fri May 4 10:08:44 PDT 2012


On 04/05/2012 13:27, Steven Schveighoffer wrote:
> On Fri, 04 May 2012 01:13:07 -0400, Mehrdad <wfunction at hotmail.com> wrote:
>
>> Hmm... how exactly do you use RTInfo? (Is it usable yet? All I see is
>> a void* and a dummy template.)
>
> You have to fill in object.di's RTInfo(T) to be whatever you want. As I
> said, it's very beta, intended as a hook to use for more precise garbage
> collection, or any other runtime info goodies you want to put in there.
> See my example for a hint.
>
> Essentially, the compiler's going to do this:
>
> class C {...}
>
> // compiler: hmmm... have to generate TypeInfo_Class for C. Let me set
> up all the normal hooks
>
> TypeInfo_Class CTypeInfo;
> CTypeInfo.name = "C";
> ...
>
> // compiler: ok, now let me generate the RTInfo part
> CTypeInfo.m_rtInfo = RTInfo!C;
>
> Now, you can call typeid(instanceOfC).rtInfo and it will give you the
> data that comes from RTInfo!C. And you don't have to know the type of
> instanceOfC, it could be Object. It's essentially a way to convert
> compile-time data into runtime data.
>
> -Steve

If you do that, won't anybody who wants to use the code have to have the 
same hacks to object di?

If so that's not going to be give anything that's either portable or 
reusable.

-- 
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk


More information about the Digitalmars-d mailing list