C++11 可变参数模板 (Variadic Template) 可变参数模板依靠递归 + 重载终止实现参数遍历:#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