如何使用int参数对特定模板的模板函数进行部分特化

时间:2015-02-23 05:48:16

标签: c++ class templates c++11 template-specialization

我无法找到另一个似乎可以回答此问题的问题。

我的模板定义如下:

template <int N> class classA;

// A类的主体真的与这个问题无关。

现在我有了第二个类模板:

template<typename T> class classX
{
 public:
  static const unsigned number;
}

使用默认实现:

template<typename T> classX<T>::number = sizeof(T);

但我希望有一个&#34;专业化&#34;对于classX,如果与classA一起使用。 但是对于所有/任何模板参数N. 我该怎么做?

谢谢你的回复:)

已编辑:已更正的语法错误:)

1 个答案:

答案 0 :(得分:4)

你会使用:

template <int N> class classX<classA<N>>
{
   // Add the details of the specialization
};

BTW,您发布的代码有语法错误。

template <int N> classA;

应该是:

template <int N> class classA;
      // Missing ^^^^

template<typename T> classX { ...

应该是

template<typename T> class classX { ...
          // Missing ^^^^

请参阅有关工作示例程序的注释中的link posted by @TonyD