c++ - 接受多个可变参数的函数: sumfunc(auto... a, auto... b)
问题描述
如何编写这样一个函数,它接受多个可变参数并用它们做一些事情(例如,如果它们是相同的类型,则总结它们)?
例如,代码片段工作正常:
auto someFunc = [](auto a, auto b) -> auto { return a + b; };
auto curry = [](auto func) -> auto
{
return [=](auto x) -> auto
{
return [=](auto y) -> auto { return x + y; };
};
};
用柯里化调用它也有效:
std::cout << (someFunc)(10, 5) << std::endl;
std::cout << curry(someFunc)(10)(18) << std::endl;
现在当 somefunc() 具有以下类型的签名时如何做同样的事情?
auto someFunc = [](auto... a, auto... b) -> auto { return ??? ; };
如果没有这种方法,可以使用 C++17 折叠操作来完成吗?
谢谢。
解决方案
推荐阅读
- flutter - Flutter:错误:“await”只能用于“async”或“async*”方法。甚至认为该方法是异步的
- sql-server - 将变量传递给 Openquery 和 SQL 注入
- python - SQLAlchemy 按列表的字典过滤
- android - Glide 版本 4.11.0 出现“找不到 compiler.jar”错误
- aframe - aframe glTF cube-env-map
- java - 将数据从第二个活动中的 ArrayList 移动到主要活动 - android
- java - 使用 ESAPI sendRedirect 修复 openRedirect 但不能在 Java 中工作?
- javascript - 将树枝数组转换为 javascript 以访问对象
- python - boto3 - 'utf-8' 编解码器无法编码字符
- sql - 使用 select 语句的结果在单个查询中插入多行