2015-02-23 62 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