C++变参模板之空参包的特殊情况

空参包的特殊情况

回到前面我们需要传入空参时该怎么处理?很简单,我们直接用二元折叠表达式就是设定一个初值即可。

复制代码
template <typename... Args>
auto getSum(Args... args) {
    return (args + ... + 0);
}

int main() {
    getSum();
}

那么,是所有一元折叠表达式都不可以传入空参吗?

并非如此,标准规定只有 && || ,这三个运算符是合法操作,并做出了如下规定:

&& 空包的值为

空包的值为

空包的值为

小结

变参模板的出现,极大的提高了编码的编码的便捷性。并对于一些历史遗留问题,如:变参宏难以编写和调试,一些旧库的参数个数限制等等问题,将不复存在。

可能一些朋友对模板元编程并不感兴趣,但是我们目前很多常用的库和特性都依赖于变参模板的技术,如: 等等。相信阅读完本文后,再去查看这些库的源码时能更加如鱼得水。

相关推荐
像我这样帅的人丶你还11 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩11 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia12 小时前
Mybatis的日志输入
java
亦暖筑序14 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户2986985301417 小时前
Java 实现 Word 文档加密与权限解除
java·后端
用户8055336980317 小时前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
Yeats_Liao17 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿17 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67518 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly18 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring