MST

星途 面试题库

面试题:C++可变参数模板递归展开基础应用

请编写一个C++函数模板,利用可变参数模板的递归展开方法,实现对传入的多个整数参数求和,并返回结果。例如调用该函数传入参数1, 2, 3,应返回6。
48.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 递归终止模板特化
template <typename T>
T sum(T num) {
    return num;
}

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

你可以使用如下方式调用:

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