On Sunday, 20 January 2013 at 15:39:53 UTC, Philippe Sigaud wrote:
On Sun, Jan 20, 2013 at 3:59 PM, Phil Lavoie <[email protected]> wrote:
Imagine you have something like this:

struct MyParamType( T1, T2 ) { ... }

and then a compound:

struct MyCoumpound( T ) if( isMyParamType!T ) { ... }

template isMyParamType( T ) {
  enum isMyParamType = ... //Complete this
}

Is it possible to deduce that T is a parameterized struct using
isExpressions:

enum isMyParamType = is( T U: MyParamType!U ); //Works for 1 parameter, but
what do you do when you have plenty?

This should work:

is(T _ : MyParamType!U, U...)


( '_' just to tell someone reading the code this part is not used)

Is there also a way to extract per parameter information (ex: type) using type deduction. Let me illustrate:

struct Toto( T1, T2 ) {
 alias Key = T1;
 alias Value = T2;
}

struct OuterToto( T ) if( isToto!T ) {
  T.Key key;
  T.Value value;
}

Imagine I would want that but without using inner aliases, is this possible?

Thanks!
Phil

Reply via email to