equivalent of typeid(Class).name at compile-time
Steven Schveighoffer
schveiguy at gmail.com
Fri Nov 22 15:48:46 UTC 2019
On 11/22/19 4:04 AM, Jacob Carlborg wrote:
> On Thursday, 21 November 2019 at 20:44:19 UTC, Steven Schveighoffer wrote:
>> I thought I could do typeid(Class).name to get the class name that
>> will be returned at runtime if you did typeid(instance).name. But it's
>> not accessible at compile-time.
>>
>> What compile-time string should I use for instance in a constructed
>> switch statement? I'm trying to implement serialization and
>> deserialization of classes, but I really would like to avoid using a
>> class enum if possible, since the type id is already there and
>> generated by the compiler.
>
> I solved that by storing the class info as the key in an associative
> array [1]. But it looks like Adam's solution will work as well.
>
> If you ideas, you can always have a look at Orange.
>
> [1]
> https://github.com/jacob-carlborg/orange/blob/90f1dbb0097ba4a319805bfb7d109f7038418ac6/orange/serialization/Serializer.d#L241-L262
>
Thanks for all the replies, guys. Annoying that the compiler has
generated these names but doesn't make them accessible at compile-time.
-Steve
More information about the Digitalmars-d-learn
mailing list