C++11 可变参数模板 (Variadic Template)
2026/6/15 13:23:49 网站建设 项目流程

可变参数模板依靠递归 + 重载终止实现参数遍历:

#include <iostream> // 递归终止函数(空参数) void print() { std::cout << "\n"; } // 可变参数模板函数 template <typename T, typename... Args> void print(const T& first, const Args&... rest) { std::cout << first << " "; // 递归展开剩余参数 print(rest...); } int main() { print(1, 2.5, "hello", 'A', true); return 0; }

输出:

1 2.5 hello A 1

遍历所有参数并做统一操作:

#include <iostream> // 递归终止:0 int sum() { return 0; } template <typename T, typename... Args> int sum(T val, Args... args) { return val + sum(args...); } int main() { std::cout << sum(1, 2, 3, 4, 5) << std::endl; // 15 return 0; }

利用模板元编程统计参数包长度:

#include <iostream> // 空参数包,长度 0 template <typename... Args> st

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询