位置: IT常识 - 正文

通过宏封装实现std::format编译期检查参数数量是否一致(怎么实现宏的功能)

编辑:rootadmin
背景 std::format在传参数量少于格式串所需参数数量时,会抛出异常。而在大部分的应用场景下,参数数量不一致提供编译报错更加合适,可以促进我们更早发现问题并进行改正。 最终效果 // 测试输出接口。 template <typename... T> void Print(const std:: ... 背景

推荐整理分享通过宏封装实现std::format编译期检查参数数量是否一致(怎么实现宏的功能),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何用宏,使用宏定义,使用宏的过程,使用宏可以,excel宏封装成exe,如何将vba宏封装成程序,如何将vba宏封装成程序,如何将vba宏封装成程序,内容如对您有帮助,希望把文章链接给更多的朋友!

通过宏封装实现std::format编译期检查参数数量是否一致(怎么实现宏的功能)

std::format在传参数量少于格式串所需参数数量时,会抛出异常。而在大部分的应用场景下,参数数量不一致提供编译报错更加合适,可以促进我们更早发现问题并进行改正。

最终效果// 测试输出接口。template <typename... T>void Print(const std::string& _Fmt, const T&... _Args){ cout << std::vformat(_Fmt, std::make_format_args(_Args...)) << endl;}// 封装宏,实现参数数量一致的检查#define PRINT(fmt, ...) \ do { static_assert(GetFormatStringArgsNum(fmt) == decltype(VariableArgsNumHelper(__VA_ARGS__))::value, "Invalid format string or mismatched number of arguments"); Print(fmt, __VA_ARGS__); } while(0)int main(){ PRINT("{}", "hello"); PRINT("{} {}", "hello"); return 0;}

上例代码中,使用PRINT宏封装了Print函数,后续使用PRINT进行控制台输出,如果出现参数数量不一致,将产生编译报错:Invalid format string or mismatched number of arguments。

所用技术

静态断言: static_assert

格式串参数数量获取: GetFormatStringArgsNum,该接口

本文链接地址:https://www.jiuchutong.com/zhishi/310728.html 转载请保留说明!

上一篇:python PaddleOCR库的介绍

下一篇:phpcms不能生成首页怎么办(phpcms编辑器)

  • 论微博营销的社会营销价值(微博营销理论)

    论微博营销的社会营销价值(微博营销理论)

  • 小爱音箱qq音乐账号过期要怎么绑定(小爱音响官网app下载)

    小爱音箱qq音乐账号过期要怎么绑定(小爱音响官网app下载)

  • iwatch能游泳吗(apple watch 能游泳吗)

    iwatch能游泳吗(apple watch 能游泳吗)

  • 华为手机设置怎么没有更多设置(华为手机设置怎么没有通用功能)

    华为手机设置怎么没有更多设置(华为手机设置怎么没有通用功能)

  • 微信语音不清楚怎么回事(蓝牙耳机发微信语音不清楚)

    微信语音不清楚怎么回事(蓝牙耳机发微信语音不清楚)

  • 电动三轮能换大容量电池吗(电动三轮换大控制器可以吗)

    电动三轮能换大容量电池吗(电动三轮换大控制器可以吗)

  • 苹果怎么删除全部短信(苹果怎么删除全部短信全选)

    苹果怎么删除全部短信(苹果怎么删除全部短信全选)

  • 58同城发布达到上限怎么办(58同城发布多久能看到)

    58同城发布达到上限怎么办(58同城发布多久能看到)

  • 苹果平板cellular什么意思(苹果平板cellular版和wlan版区别)

    苹果平板cellular什么意思(苹果平板cellular版和wlan版区别)

  • 抖音直播间怎么上热门(抖音直播间怎么在屏幕上挂字)

    抖音直播间怎么上热门(抖音直播间怎么在屏幕上挂字)

  • 金立8001是什么型号(金立8003l是什么型号)

    金立8001是什么型号(金立8003l是什么型号)

  • 微信账单可以查看某个人的吗(微信账单可以查出跟一个人所有的交易记录吗)

    微信账单可以查看某个人的吗(微信账单可以查出跟一个人所有的交易记录吗)

  • 微信朋友圈内容不能全部显示出来(微信朋友圈内容怎么删除掉)

    微信朋友圈内容不能全部显示出来(微信朋友圈内容怎么删除掉)

  • 华为手环测心率准吗(华为手环测心率经常低于40次)

    华为手环测心率准吗(华为手环测心率经常低于40次)

  • 华为和荣耀的区别(华为和荣耀的区别大吗)

    华为和荣耀的区别(华为和荣耀的区别大吗)

  • 抖音的赞怎么变少了(抖音的赞怎么变成抱抱)

    抖音的赞怎么变少了(抖音的赞怎么变成抱抱)

  • 手机号码怎么加入黑名单(手机号码怎么加区号)

    手机号码怎么加入黑名单(手机号码怎么加区号)

  • 内存占用率多少合适(内存占用率多少不卡)

    内存占用率多少合适(内存占用率多少不卡)

  • 电脑13寸是多大(电脑13寸是多少厘米 长宽)

    电脑13寸是多大(电脑13寸是多少厘米 长宽)

  • ipad2能用大王卡吗(ipad能插大王卡吗)

    ipad2能用大王卡吗(ipad能插大王卡吗)

  • vivox27摄像头防水吗(vivox27摄像有防抖功能吗)

    vivox27摄像头防水吗(vivox27摄像有防抖功能吗)

  • 苹果xr可以分屏吗(苹果手机能分屏吗)

    苹果xr可以分屏吗(苹果手机能分屏吗)

  • 朋友圈怎么发不折叠(朋友圈怎么发不折叠文字)

    朋友圈怎么发不折叠(朋友圈怎么发不折叠文字)

  • 小米手机一打电话就黑屏怎么回事(小米手机打电话重启是怎么回事)

    小米手机一打电话就黑屏怎么回事(小米手机打电话重启是怎么回事)

  • 布鲁克斯河中的棕熊,阿拉斯加卡特迈国家公园 (© littleting/Pradthana Jarusriboonchai/Getty Images)(布鲁克斯的故事)

    布鲁克斯河中的棕熊,阿拉斯加卡特迈国家公园 (© littleting/Pradthana Jarusriboonchai/Getty Images)(布鲁克斯的故事)

  • 纳税调整项目包括哪些?请简单列举
  • 增值税专用发票怎么开
  • 发现之前的差旅费补助多报了一天该怎么调整
  • 购买礼品送客户个人所得税
  • 税务师工作年限是从毕业当天开始计算吗
  • 小规模纳税人劳务分包税率
  • 减免税属于政府转移支付吗
  • 需要冲红的普通发票无法收回怎么办
  • 2020劳务退税怎么退
  • 房地产企业可以贷款吗
  • 应计利息会计分录处理
  • 购买房产怎么确认收入
  • 结转累计折旧分录
  • 已认证的红字发票怎么退
  • 上年度的印花税怎么计算
  • 水利事业单位基建并账分录怎么写?
  • 如何查询对方是不是老赖
  • 计提年终奖金的会计分录怎么写
  • 国税注销了地税没注销现在经营异常
  • 增值税和消费税的区别和联系
  • 代购要交税么
  • 危险废物处理费用发票怎么开
  • 一般纳税人施工费税率是多少
  • 会计利润和税务利润不一致
  • 货物毁损物流赔偿
  • 小规模增值税专票税率
  • 工商年报员工人数怎么算
  • 公司名下没车能报油费吗
  • 怎么授权gg修改器root权限
  • 暂估营业收入会增加吗
  • assoc.exe=exefile什么意思
  • PHP:pg_free_result()的用法_PostgreSQL函数
  • 实收资本一定要打进公司对公户吗
  • 图书发行流程
  • 海外供应商贸易平台
  • 简述税款征收的基本原则
  • 季报的利润表本月金额填的是当月数可以吗
  • vue-plugin-hiprint vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用
  • 前端面试题基础篇
  • 生育津贴的钱怎么取出来
  • 自产产品用于福利账务处理
  • 投资性房地产由成本模式转为公允价值模式
  • 印花税如何记账入账
  • 运输公司燃油费占比
  • 长期股权投资为什么不是金融资产
  • 企业筹建期间是什么
  • 存货核算方法有五种
  • 事业单位结余是什么意思
  • 免税收入啥意思
  • 建筑企业合理避税
  • 招待客人的住宿叫什么
  • 公转私怎么操作
  • 错开发票所需要提供的资料以及时效要求是?
  • 资产处置损益在资产负债表哪里
  • 会计账簿的种类包括总账明细账日记账和其他辅助性账簿
  • 会计中的记账是什么意思
  • 编写高质量代码改善JAVA程序的151个建议
  • 分页查询效率
  • redhat server
  • linux calloc
  • centos 3
  • mac 默认设置
  • win7系统硬盘
  • dropbox怎么在国内使用
  • win7开始菜单在哪里
  • windows8c盘满了怎么清理
  • 校园网升级套餐
  • node.js详解
  • python matplotlab
  • unity游戏官网
  • android 属性动画改变view大小
  • for循环取数据
  • Python编程中的逻辑与控制
  • TNet Tasharen Networking
  • unity怎么写接口
  • listview提高效率
  • 使用粗盐热敷十大危害
  • 装修时候需要交什么费
  • 国家税务总局39号文
  • 车辆过户给自己家人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设