Are we on the simplest path for working with compile time entities?

Stefan Koch uplink.coder at googlemail.com
Fri Sep 25 09:37:23 UTC 2020


Hi,

If you'll remember I recently talked about an alternative way of 
implementing working with compile time entities such as types.

And I was pleased about it getting attention from prominent forum 
members and even Walter.

I gave the example of using a static map function to get the type 
sizes of a tuple of types.

As a result Walters does adds the ability to get sizeof without 
having to interface with the type entities :
The code for just that functionality to be added is this:

                             if (fd.ident == Id.tsize)
                             {
                                 // Equivalent logic to `T.sizeof` 
in getProperty()
                                 d_uns64 sz = t.size(dve.loc);
                                 if (sz != SIZE_INVALID)
                                 {
                                     ret = new IntegerExp(dve.loc, 
sz, Type.tsize_t);
                                     return;
                                 }
                             }

Is that what we want for every property of typeid ?

How many properties do we need to add to typeid to make it really 
usable?
UDAs?
vtbls?
member names?
offsets?

Can I get the fully qualified name from this?



More information about the Digitalmars-d mailing list