MST

星途 面试题库

面试题:C++可变参数模板之参数包展开基础

请编写一个C++函数模板,利用可变参数模板和参数包展开,实现对传入的多个整数参数进行求和,并返回结果。要求在函数中使用递归方式处理参数包。
38.0万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 递归终止函数
template<typename T>
T sum(T value) {
    return value;
}

// 递归展开参数包的函数模板
template<typename T, typename... Args>
T sum(T first, Args... rest) {
    return first + sum(rest...);
}

你可以这样调用这个函数:

int main() {
    int result = sum(1, 2, 3, 4, 5);
    std::cout << "Sum: " << result << std::endl;
    return 0;
}