具有给定类的类模板的专门化

时间:2015-02-01 16:55:32

标签: c++ templates template-specialization

我有一个A类和一个类模板B,声明如下:

class A;

template <class T>
class B;

我想为T = int声明一个B的特化,它与A一致,即类似这样的

template<>
class B<int> = A;

1 个答案:

答案 0 :(得分:1)

您可以通过嵌套类和C ++ 11模板别名来模拟B的此类行为:

class A;

template <class T>
struct B_
{
    class type{ /* Implement your general version of B here */ };
};

template <>
struct B_<int>
{
    using type = A;
};

template <class T>
using B = typename B_<T>::type;

Live demo

相关问题