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