100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++模板特化和偏特化

C++模板特化和偏特化

时间:2024-03-31 03:40:06

相关推荐

C++模板特化和偏特化

1、模板特化的引入

使用模板时会遇到一些特殊的类型需要特殊处理,不能(或不希望)直接使用当前的模板版本时,所以此时我们就需要对该类型定义一个类或函数的特例化版本。

例:当使用一个判断相等的模板函数时

template<class T>bool Isequal(T& p1, T& p2){return p1 == p2;}

但是该模板函数在对于字符串进行比较时就不能使用了,对于字符串我们不能直接比较,因此直接特化出一个专门供字符串使用的模板参数:

template<> // 此处不添加类型模板,直接使用空即可bool Isequal<char*>(char*& p1, char*& p2){// 在类名后使用尖括号注明特化类型return strcmp(p1, p2) == 0;}

【注意】

(1)模板及其特例化版本应该声明在同一个头文件中。所有同名模板的声明应该放在前面,然后是这些模板的特例化版本。

(2)使用特换模板函数时格式有要求:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。