Thread overview
How to implement `isTemplate` traits?
Oct 04, 2017
drug
Oct 04, 2017
Biotronic
Oct 04, 2017
drug
October 04, 2017
I need to separate templates:
```
foreach(member; __traits(allMembers, V))
{
	static if (__traits(compiles, { auto _val = &__traits(getMember, value, member); })
	{
		// a template needs to be instantiated to be addressable, so it works, but I think it's dirty hack instead of dry and clean way...
	}
}
```
May be phobos has such traits somewhere?
October 04, 2017
On Wednesday, 4 October 2017 at 09:32:31 UTC, drug wrote:
> I need to separate templates:
> ```
> foreach(member; __traits(allMembers, V))
> {
> 	static if (__traits(compiles, { auto _val = &__traits(getMember, value, member); })
> 	{
> 		// a template needs to be instantiated to be addressable, so it works, but I think it's dirty hack instead of dry and clean way...
> 	}
> }
> ```
> May be phobos has such traits somewhere?

template isTemplate(T...) if (T.length == 1) {
    enum isTemplate = __traits(isTemplate, T[0]);
}

--
  Biotronic
October 04, 2017
04.10.2017 12:54, Biotronic пишет:
> 
> template isTemplate(T...) if (T.length == 1) {
>      enum isTemplate = __traits(isTemplate, T[0]);
> }
> 
> -- 
>    Biotronic

Thank you!