【发布时间】:2019-03-06 15:20:16
【问题描述】:
我有以下代码,其中包含从以下位置复制的可变参数模板: https://www.youtube.com/watch?v=iWvcoIKSaoc@41:30
auto sum() { return 0; }
template<typename Head, typename... Tail>
auto sum(Head head, Tail... tail)
{
return head+sum(tail...);
}
int main() {
cout<< sum(1,2.4) << endl;
//cout<< sum("hello ", "world") << endl;
return 0;
}
我有两个问题: 1. 这里需要 sum() 函数,以便在处理最后一个可变参数成员时可以有一个传入的 void 的返回值 - 是否可以避免编写这个 sum() 函数并具有相同的功能?
- 从 sum() 函数返回整数 '0' 会限制整数使用整个模板 - 我可以扩展同一个模板来连接字符串吗?
谢谢
【问题讨论】:
-
C++14 标签是否意味着你不想听到 C++17 折叠表达式?
-
不 - 我可以使用 C++17
标签: c++ variadic-templates typetraits