使用给定的 class 对 class 模板进行特化

Specialization of a class template with the given class

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

class A;

template <class T>
class B;

我想为 T=int 声明 B 的特化,它与 A 重合,即像这样

template<>
class B<int> = A;

您可以通过嵌套 类 和 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