讓後門函式能夠偏特化
struct cls
};對這個類cls的後門函式postern,我們只能對它進行全特化。現在的c++還不支援模板函式的偏特化。可是有的時個我們的擴充套件真的需要偏特化,所以得想點辦法來完成這個事情。辦法就是把這個後門函式的偏特化需求轉換為乙個類的偏特化。下面我們來完成這個過程。請看下面的這個類定義。
struct cls
private:
// 乙個用來做測試用的私有成員函式
void fun(void)
// 內部巢狀的用來對後門函式偏特化的類
template
< typename t, typename u>
struct cpostern
}; };
這個cls類,有三個成員。 乙個後門函式postern, 乙個私有函式fun, 乙個巢狀類cpostern。現在的後門函式postern只完成一件事情:呼叫巢狀類cpostern中的pestern。通過這次呼叫,我們把偏特化工作由針對函式成功的轉向了針對類。現在我們只需偏特化巢狀類cpostern就行了。例如我們可以做如下的偏特化。
template
struct cls::cpostern< t, int>
};同樣,我們這次的偏特化沒有對原始的cls做一絲一毫的更改。
讓後門能夠偏特化
讓後門函式能夠偏特化 struct cls 對這個類cls的後門函式postern,我們只能對它進行全特化。現在的c 還不支援模板函式的偏特化。可是有的時個我們的擴充套件真的需要偏特化,所以得想點辦法來完成這個事情。辦法就是把這個後門函式的偏特化需求轉換為乙個類的偏特化。下面我們來完成這個過程。請看...
特化和偏特化 特化和偏特化
分類 c 2010 03 17 18 27 560人閱讀 收藏 舉報 partial template specialization能夠讓你在模板 template 的所有可能的實體中特化出一組子集.1.模板的特化 template specialization 例如,定義如下的乙個模板 templ...
特化與偏特化
綜合stl 原始碼剖析中給出的兩種定義,可以如下定義 所謂偏特化的意思是提供另乙份更進一步條件的template定義式,其仍然是模板化的。舉乙個例子 templatestruct test 偏特化版本1 templatestruct test 偏特化版本2 templatestruct test t...