Partial template specialization: matching on properties of specialized template parameter
Posted
by Kenzo
on Stack Overflow
See other posts from Stack Overflow
or by Kenzo
Published on 2010-05-29T06:13:04Z
Indexed on
2010/05/29
6:22 UTC
Read the original article
Hit count: 336
template <typename X, typename Y> class A {};
enum Property {P1,P2};
template <Property P> class B {};
class C {};
Is there any way to define a partial specialization of A
such that A<C, B<P1> >
would be A
's normal template, but A<C, B<P2> >
would be the specialization?
Replacing the Y
template parameter by a template template parameter would be nice, but is there a way to partially specialize it based on P
then?
template <typename X, template <Property P> typename Y> class A {};
// template <typename X> class A<X,template<> Y<P2> > {}; <-- not valid
Is there a way by adding traits to a specialization template<> B<P2>
and then using SFINAE in A?
© Stack Overflow or respective owner