template <typename... Args>给我一个使用示例
时间: 2024-09-19 08:11:22 浏览: 39
A dbg(…) macro for C++.zip
`template <typename... Args>` 是 C++ 中的一种模板元编程技巧,它允许你在函数、类或其他模板定义中处理任意数量和类型的参数,通常用于创建通用的函数或数据结构。这种技术常用于函数重载、算法库以及需要接受不同类型参数的情况。
例如,下面是一个使用 `template` 的泛型函数模板,它可以计算任意类型元素的和:
```cpp
#include <iostream>
template<typename T, typename... Args>
T sum(T first, Args... args) {
return (first + sum(args...));
}
int main() {
std::cout << "Sum of 1, 2, and 3: " << sum(1, 2, 3) << std::endl;
std::cout << "Sum of 'a', 'b', and 'c': " << sum('a', 'b', 'c') << std::endl;
return 0;
}
```
在这个例子中,`sum` 函数可以处理整数和字符这两种不同的数据类型。当你调用 `sum(1, 2, 3)` 和 `sum('a', 'b', 'c')` 时,编译器会分别生成两个版本的函数。
阅读全文