簡體   English   中英

如何專門化給定模板的模板

[英]How to specialize a given template for a template

是否可以將這個模板專門用於任何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即可。

是:

#include <string>

template <typename> struct X;

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

您的主要模板采用一個類型參數,因此每個專業化必須以一種或另一種方式為X提供一個類型參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM