两个知识点,一叫默认模板参数,二叫模板偏特化。
顾名思义,默认模板参数就是将来用到时不用自己显式指定,可以少打一些字;偏特化又叫部分特化,意思是“我在这里定义一下有N个参数类型的模板、当其中一个类型为某某类型时应该做什么特殊处理”或者“当类型满足部分特征时应该如何处理”,比如一个接受迭代器的模板也可以接受指针,但如果针对指针有更高效的实现方式你就可以针对“迭代器是原始指针”做一个更优化的实现。将来模板实例化时会优先使用类型契合度最高的实现——比如用户传入一个int*,于是就用针对原始指针的那个特化实现实例化模板。
或者说,模板偏特化等于指定了“所有指针类型怎么做(注意指针类型包括int指针、char指针等一整个大类,换句话说是特化了指针类操作,但具体指针类型仍然需要在用到时推导)”或者“第X个参数是int/char类型如何做”;那么当你传入int*或者“第X个参数是int同时其它参数分别是classA、double”时,模板推导系统会优先选择对应的偏特化版本。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有