第一章 函数模板
1.1 什么是函数模板
函数模板代表一组函数,提供了适用于不同数据类型的行为。
1.1.1 函数模板定义
1 2 3 4 5
| template<typename T> T max(T a, T b) { return b < a ? a : b; }
|
C++17 之前,类型 T 也必须可复制才能传递参数。 C++17 以后,即使复制构造函数和移
动构造函数都无效,也可以传递临时变量 (右值,参见附录 B)。
1.1.2 使用模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include "max1.hpp" #include <iostream> #include <string>
int main() { int i = 42; std::cout << "max(7,i):" << ::max(7, i) << '\n';
double f1 = 3.4; double f2 = -6.7; std::cout << "max(f1, f2):" << ::max(f1, f2) << '\n';
std::string s1 = "mathematics"; std::string s2 = "math"; std::cout << "max(s1, s2):" << ::max(s1, s2) << '\n'; }
|