Get most D type from type

Basile B. via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Mar 18 08:16:35 PDT 2017


On Saturday, 18 March 2017 at 13:30:22 UTC, Hussien wrote:
> On Saturday, 18 March 2017 at 13:16:49 UTC, Adam D. Ruppe wrote:
>> On Saturday, 18 March 2017 at 13:06:56 UTC, Hussien wrote:
>>> So you are telling me there is no way to do this easily?
>>
>> What are you actually trying to do?
>
> Glad you asked! It is very simple: I am trying to get the 
> underlying D type from a type that I have.
>
> interface X; => dtype!(X) == "interface"
> enum X; => dtype!(X) == "enum"
> class X; => dtype!(X) == "class"
> struct X; => dtype!(X) == "struct"
> union X; => dtype!(X) == "union"
> wchar* X; => dtype!(X) == "wchar*"
> int X; => dtype!(X) == "int"
> void function() X; => dtype!(X) == "function*"
> void X(); => dtype!(X) == "function"
> etc..
> etc..
>
> The very right terms should only be terms that are listed in 
> the D grammar as types besides the *'s. If a type is a pointer 
> to a _type_, dtype should return _type_*, etc.

The problem with enums is that it contains several stuff. It's 
actually a storage class. enums can be
- named enum
- anonymous enum
- manifest constant
- lambda
- templates

The others stuff are easy to retrieve, like you've been said 
earlier.


More information about the Digitalmars-d-learn mailing list