On Fri, 18 Feb 2011 20:37:38 +0000, Sean Eskapp wrote: > == Quote from Lars T. Kyllingstad (public@kyllingen.NOSPAMnet)'s article >> On Fri, 18 Feb 2011 17:16:02 +0000, Sean Eskapp wrote: >> > I was given this code, to check if Y is a specialization of Bar. How >> > does it work? >> > >> > class Bar(T) >> > { >> > } >> > >> > void foo(Y)() >> > { >> > static if (is(Y Z == Bar!Z)) >> > { >> > // Here, Z is now an alias to whichever type Bar is // >> > instantiated with. >> > } >> > else >> > { >> > // Z is invalid here. >> > } >> > } >> I'm not sure what you mean by "how does it work". If it's the is() >> expression you're wondering about, it's documented here: >> http://www.digitalmars.com/d/2.0/expression.html#IsExpression -Lars > > Ah, yes. I'd checked the is documentation, but whenever I tried using > that is expression outside of an if statement, it complained about my > usage, so I assumed it had something to do with if statements.
Yeah, is() has a few extra features when it's combined with 'static if'. :) -Lars