2015-02-23 107 views
0

我无法找到似乎回答此问题的另一个问题。如何使用int参数为特定模板部分特化模板函数

我有一个模板定义如下:

template <int N> class classA; 

//类A的身体是不相关的这个问题真的。

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

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

有一个默认的实现:

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

但是我想,如果有CLASSA用于对classX一个 “专业化”。 但是对于所有/任何模板参数N. 如何做到这一点?

感谢您的回复:)

编辑:纠正语法错误:)

回答

4

你可以使用:

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

顺便说一句,你贴的代码有语法错误。

template <int N> classA; 

应该是:

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

template<typename T> classX { ... 

应该

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

看到评论link posted by @TonyD一个工作示例程序。

+1

FWIW,与OP的错误排序[这里](http://ideone.com/QWiHX3)。 – 2015-02-23 06:05:05

+0

@TonyD,谢谢。很高兴发布链接到工作代码。 – 2015-02-23 06:07:26