函数模板
1.1 概览
1.1.1 定义模板
1.1.2 使用模板
1.1.3 两阶段转换
1.2 模板参数推导
1.3 多个模板参数
1.3.1 返回类型模板参数
1.3.2 推导返回类型
1.3.3 Common Type 作为返回类型
1.4 默认模板参数
1.5 重载函数模板
1.6 但是,我们不应该?
1.6.1 按值还是按引用传参?
1.6.2 为什么不用 inline?
1.6.3 为什么不用 constexpr?
1.7 总结
- 函数模板定义了不同模板参数的函数族
- 当函数参数以来模板参数时,函数模板会推导对应的参数类型
- 你可以显式限定模板参数
- 你可以定义模板参数的默认值。而且可以是更前面没有默认值的模板参数
- 你可以重载函数模板
- 当重载函数模板时,你需要确保只有一个函数可以匹配到调用方
- 当重载函数模板时,显式限制你的修改
- 确保编译器可以在调用前知道所有函数模板