Checking if something is a template specialization?
Sean Eskapp
eatingstaples at gmail.com
Fri Feb 18 04:05:56 PST 2011
== Quote from Lars T. Kyllingstad (public at kyllingen.NOSPAMnet)'s article
> On Fri, 18 Feb 2011 02:02:51 +0000, Sean Eskapp wrote:
> > If I have
> >
> > class Bar(T)
> > {
> > }
> >
> > void foo(Y)()
> > {
> > ...
> > }
> >
> > Is there a way to check inside foo() that Y is in some way an
> > instantiation of Bar? Is there a way to find WHICH instantiation it is?
> 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.
> }
> }
Perfect, thanks!
More information about the Digitalmars-d-learn
mailing list