dmd 1.046 and 2.031 releases - is() expression
The Anh Tran
trtheanh at gmail.com
Mon Jul 6 21:43:10 PDT 2009
Andrei Alexandrescu wrote:
> I agree there are ugly constructs in D, and is-expressions would near
> the top of the list (particularly the absolutely awful is(T : T[])), but
> you have no case (heh) with the switch statement.
>
>
> Andrei
Just a funny suggestion: could we change the is() expression to
imperative style?
Now:
template Something(T, U, V) if ( is(T : T[]) && is(...) )
{
alias T blah1;
U blah2;
class C {};
struct S {};
}
In mirror universe:
template Something(T, U, V)
in
{
static if ( T : T[] ) // static if here mean if (is (...))
{
// may do something with T, make alias, change type
// or check another constraint.
}
else
{
pragma(msg, "T must be Klingon");
static assert(false); // Or return false; ????
}
static if ( U == int )
{
V = float; // ?????
}
return true;
}
body
{
alias T blah1;
U blah2;
class C {};
struct S {};
}
More information about the Digitalmars-d-announce
mailing list