Get struct template types
Jakob Ovrum
jakobovrum at gmail.com
Tue Feb 4 03:01:00 PST 2014
On Tuesday, 4 February 2014 at 09:30:22 UTC, ed wrote:
> Hi,
>
> given a struct like so:
>
> struct S(alias N, T) {...}
>
> is there a way to get the template parameters of S? Something
> like:
>
> S.typetuple[0] == N,
> S.typetuple[1] == T
>
> I've had a look at std.typecons and std.typetuple but I don't
> see what I'm missing something and cannot see a way to do the
> above.
>
> Thanks,
> ed
Use type deduction:
---
struct S(size_t n, T) {}
enum isS(T) = is(T == S!(n, U), size_t n, U);
template isS(T, size_t n)
{
static if(is(T == S!(n2, U), size_t n2, U))
enum isS = n == n2;
else
enum isS = false;
}
alias MyS = S!(3, float);
static assert(isS!MyS);
static assert(isS!(MyS, 3));
static assert(is(MyS == S!(3, float)));
---
More information about the Digitalmars-d-learn
mailing list