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

C++变参模板的使用

C17

1.  使用编译器if常量表达式

template<typename T, typename U, typename... Ts>
void syszuxPrint(T arg1, Ts... arg_left)
{std::cout << arg1 << ", ";if constexpr (sizeof...(arg_left) > 0){syszuxPrint(arg_left...);}
}

但是这种方式对于我个人遇到的问题有点不适用,我需要的是第一是数据指针,然后第二个参数、第三个参数是数据的宽高,然后后面才是变参,这样递归处理的话不行

2. C17折叠表达式

template<typename... Ts>
void syszuxPrint(Ts... arg_left){(std::cout<< ... << arg_left) << std::endl;
}int main(int argc, char** argv)
{syszuxPrint(719,7030,"civilnet");
}

上述折叠表达式存在同样的问题

3. 变种折叠表达式

template <typename First, typename... Args>
void syszuxPrint(First first, int iWidth, int iHeight, Args... args)
{std::cout << first  << std::endl;std::cout << iWidth << std::endl;std::cout << iHeight << std::endl;auto printWhiteSpace = [](const auto& arg) { std::cout << " " << arg << std::endl;};(..., printWhiteSpace(args)); // op是,
}

这样可以

http://www.lryc.cn/news/216864.html

相关文章:

  • 【二、http】go的http基本请求设置(设置查询参数、定制请求头)get和post类似
  • [学习笔记]python绘制图中图(绘制站点分布图)
  • 回归预测 | Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测
  • React 学习笔记
  • 单链表的查找(按值查找、按位查找)(数据结构与算法)
  • Qt 6.6 发布
  • unity工程
  • 蓝桥杯官网练习题(地址转换)
  • 力扣labuladong——一刷day19
  • MyBatis无法读取XML中的Method的乌龙事件
  • LeetCode----76. 最小覆盖子串
  • app逆向入门之车智赢
  • LeetCode——数组 移除元素(Java)
  • enum和Collection.stream()你这样用过么
  • unittest与pytest的区别
  • YOLOv7优化策略:IOU系列篇 | 引入MPDIoU,WIoU,SIoU,EIoU,α-IoU等创新
  • SQL Server2000mdf升级SQL Server2005数据库还原
  • webSocket推送太快导致前端渲染卡顿问题优化
  • (Java)泛型总结
  • C++ Package继承层次,采用继承实现快递包裹的分类计价(分为空运2日达、陆运3日达)。
  • 中文大语言模型汇总
  • GEE:GEE中实现简单计算器
  • 概念解析 | 神经网络中的位置编码(Positional Encoding)
  • 【ubuntu】搭建lamp架构
  • GNU ld(链接器)的主要功能
  • springboot整合FTP实现文件传输
  • Spring Boot 2.x.x 升级至 Spring Boot 3.x.x
  • 光电直读水表支持短时间多次抄表吗
  • 家庭私人影院 - Windows搭建Emby媒体库服务器并远程访问 「无公网IP」
  • 核心舱在轨飞行VR沉浸式互动体验满足大家宇宙探险的心愿