How to print current type of a SumType?

Paul Backus snarwin at gmail.com
Sun Oct 1 02:18:35 UTC 2023


On Sunday, 1 October 2023 at 01:17:50 UTC, Chris Piker wrote:
> Hi D
>
> I've a simple question but it's bedeviling me anyway.  How do I 
> get a string representation of the current type of a SumType?  
> I'm trying to avoid something like this:
>
> ```d
> alias Vec3 = SumType!(void* /* invalid vector */, byte[3], 
> short[3], char[][3]);
>
> string prnType(Vec3 vec){
>
>   return vec.match!(
>      (void* _) => "void*",
>      (byte[3] _) => "byte[3]",
>      (short[3] _) => "short[3]",
>      (char[][3] _) => "char[][3]"
>   );
> }
> ```
>
> I'm sure there's a much easier way, especially once there's a 
> largish number of vector types.
>
> Thanks,

```d
return vec.match(value => typeof(value).stringof);
```


More information about the Digitalmars-d-learn mailing list