2012-03-26 80 views
0

是否有可能專門針對任何basic_string的這個模板?如何專門爲一個模板給定的模板

template<class T> struct X {}; 

由於basic_string的是一個模板本身,我知道這將是一個解決方案:

template <template <class, class, class> class T> struct X {}; template <> struct X<basic_string> {}; 

不過,我想知道,如果語言允許保留第一模板定義,通過專門它以某種方式爲basic_string的唯一。

回答

3

是:

#include <string> 

template <typename> struct X; 

template <typename TChar, typename TTraits, typename TAlloc> 
struct X<std::basic_string<TChar, TTraits, TAlloc>> 
{ 
    // ... 
}; 

您的主模板需要一個類型參數,所以每一個專業化必須提供一個類型參數X,這種或那種方式。