我有一个A类和一个类模板B,声明如下:
class A;
template <class T>
class B;
我想为T = int声明一个B的特化,它与A一致,即类似这样的
template<>
class B<int> = A;
答案 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;