Getting the template name of a template instantiation

John via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 27 10:17:19 PDT 2016


On Monday, 27 June 2016 at 17:14:23 UTC, John wrote:
> On Monday, 27 June 2016 at 16:40:09 UTC, Nordlöw wrote:
>> If I have a template parameter
>>
>>     E = S!int
>>
>> where
>>
>>     struct S(T) { S x; }
>>
>> how can I extract the template name part `S` from E`?
>>
>> Something like:
>>
>>     static assert(is(templateName!(S!int) == S));
>>
>> Is this already in Phobos somewhere?
>
> import std.traits;
> __traits(identifier, TemplateOf!(S!int));

Scratch that, this is what you want:

import std.traits;
static assert(__traits(isSame, TemplateOf!(S!int), S));


More information about the Digitalmars-d-learn mailing list