通八洲科技

C++如何编写函数模板?(泛型编程入门)

日期:2026-01-02 00:00 / 作者:裘德小鎮的故事
函数模板是C++泛型编程核心,用template声明,支持自动类型推导、多参数及默认参数,但不支持偏特化,需重载或if constexpr处理特例。

函数模板是C++泛型编程的核心机制,它允许你用一套代码适配多种类型,避免重复编写相似逻辑的函数。

函数模板的基本语法

template template 声明模板参数,再定义函数。T 是占位符,编译器会在调用时自动推导实际类型。

一个实用的交换函数模板

swap 为例,对比普通函数和模板写法:

template 
void my_swap(T& a, T& b) {
    T temp = a;
    a = b;
    b = temp;
}

处理多个类型参数与默认模板参数

模板可接受多个类型参数,也可为部分参数设置默认类型:

template 
T add(const T& a, const U& b) {
    return static_cast(a + b);
}

模板实参推导与显式实例化

大多数时候依赖自动推导,但某些场景需手动指定: