当前位置: 首页 > news >正文

关于可变参数varargs

  今天在看源码的时候,面对以下有点蒙蔽,在这里对可变参数做一下总结。

  主要理解取自一个博客,c版本的:https://www.cnblogs.com/bettercoder/p/3488299.html

示例输出如下:

  

更多详细解释请看: http://www.cplusplus.com/reference/cstdarg/va_arg/?kw=va_arg

 

c++中的TMP:

 主要参考c++primer  page:618-624 (当时觉得应该用不上这么魔幻的操作就跳过了 QAQ)

术语:

  可变数目的目的参数被称为参数包(parameter packet)

  模板参数包(template parameter packet)

  函数参数包(function parameter packet)

template <typename T,typename... Args>
void foo(const T& t, const Args& ... rest)
{
    std::cout << sizeof...(Args) << endl;
    std::cout << sizeof...(rest) << endl;
}

int main()
{
    foo(1, 2, 3, 4, 5, 6, 7, 8);
    system("pause");
    return 0;
}

都输出了7。

更高级的std::forward保证了模板传参时原来是右值的参数仍为右值,而不会变成左值。

详细如下:http://www.cplusplus.com/reference/utility/forward/?kw=forward

转载于:https://www.cnblogs.com/manch1n/p/10804070.html

相关文章:

  • Educational Codeforces Round 64 -C(二分)
  • Windows 10一个很愚蠢的做法
  • 英语影视台词---无敌破坏王2大脑互联网
  • 开源CMS比较
  • 《Linux就该这么学》第2章 新手必须掌握的Linux命令
  • 火狐浏览器问题踩坑
  • Qtum量子链周报(4月29日-5月5日)
  • vue配合webpack使用sentry对错误日志监控
  • Leetcode PHP题解--D54 937. Reorder Log Files
  • upc组队赛18 THE WORLD【时间模拟】
  • Spring Boot 配置阿里druid数据库连接池
  • 设计模式学习04:代理模式
  • 图床失效了?也许你应该试试这个工具
  • 重学数据结构(一):基本概念
  • 《从机器学习到深度学习》笔记(4)划分数据集
  • ----------
  • [译]Python中的类属性与实例属性的区别
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • C++类的相互关联
  • echarts的各种常用效果展示
  • Electron入门介绍
  • express.js的介绍及使用
  • HashMap ConcurrentHashMap
  • jQuery(一)
  • js如何打印object对象
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • PV统计优化设计
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • sessionStorage和localStorage
  • 思考 CSS 架构
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​ubuntu下安装kvm虚拟机
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #Lua:Lua调用C++生成的DLL库
  • $ git push -u origin master 推送到远程库出错
  • (4)(4.6) Triducer
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (done) 两个矩阵 “相似” 是什么意思?
  • (ibm)Java 语言的 XPath API
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (vue)页面文件上传获取:action地址
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (十六)一篇文章学会Java的常用API
  • (转)shell中括号的特殊用法 linux if多条件判断
  • 、写入Shellcode到注册表上线
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈