位置: 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编辑器)

  • airpods能分开独立使用吗(airpods2能分开独立使用吗)

    airpods能分开独立使用吗(airpods2能分开独立使用吗)

  • vivo v1965a是什么型号(vivos6手机v1962a是什么意思)

    vivo v1965a是什么型号(vivos6手机v1962a是什么意思)

  • 亲情号付款后退款退在哪里(亲情号付款退款后额度会退回吗)

    亲情号付款后退款退在哪里(亲情号付款退款后额度会退回吗)

  • 换了屏幕后老是点不动(换了屏幕后老是点不动还会自己跳怎么办)

    换了屏幕后老是点不动(换了屏幕后老是点不动还会自己跳怎么办)

  • 苹果手机有没有应用分身功能(苹果手机有没有隐藏软件的功能)

    苹果手机有没有应用分身功能(苹果手机有没有隐藏软件的功能)

  • 微信朋友圈怎么编辑已发朋友圈(微信朋友圈怎么定位到别的城市)

    微信朋友圈怎么编辑已发朋友圈(微信朋友圈怎么定位到别的城市)

  • 网速快慢看上传还是下载(mi pay支付失败怎么办)

    网速快慢看上传还是下载(mi pay支付失败怎么办)

  • 此wifi网络使用旧的安全标准(此wifi网络使用较旧的安全标准怎么解决)

    此wifi网络使用旧的安全标准(此wifi网络使用较旧的安全标准怎么解决)

  • cmos电池没电会有什么故障现象(cmos电池没电会黑屏吗)

    cmos电池没电会有什么故障现象(cmos电池没电会黑屏吗)

  • 卡贴机电信信号稳定吗(卡贴机电信1x)

    卡贴机电信信号稳定吗(卡贴机电信1x)

  • 西瓜视频能发电视剧片段吗(西瓜视频能发电视频吗)

    西瓜视频能发电视剧片段吗(西瓜视频能发电视频吗)

  • 频繁切换微信会封号吗(频繁切换微信会封号多久)

    频繁切换微信会封号吗(频繁切换微信会封号多久)

  • word能编辑的文件类型有(word编辑的文档怎么保存到桌面)

    word能编辑的文件类型有(word编辑的文档怎么保存到桌面)

  • 快手推广审核要多久时间(快手推广审核不过钱退吗)

    快手推广审核要多久时间(快手推广审核不过钱退吗)

  • 华为畅享10plus是闪充吗(华为畅享10plus是什么屏幕)

    华为畅享10plus是闪充吗(华为畅享10plus是什么屏幕)

  • 荣耀20s锁屏样式怎么改(荣耀20锁频壁纸怎样设置)

    荣耀20s锁屏样式怎么改(荣耀20锁频壁纸怎样设置)

  • 苹果6支持nfc公交卡吗(iphone6p支持nfc)

    苹果6支持nfc公交卡吗(iphone6p支持nfc)

  • 趣键盘表情包怎么弄(趣键盘的表情包怎样一键发送)

    趣键盘表情包怎么弄(趣键盘的表情包怎样一键发送)

  • 苹果录屏功能在哪开启(苹果录屏功能在哪设置出来14)

    苹果录屏功能在哪开启(苹果录屏功能在哪设置出来14)

  • 利用ftp进行文件传输时主要安全问题存在于(利用ftp进行文件管理)

    利用ftp进行文件传输时主要安全问题存在于(利用ftp进行文件管理)

  • 快手怎么快速取关多人(快手怎么快速取消关注多个人)

    快手怎么快速取关多人(快手怎么快速取消关注多个人)

  • 针孔摄像头需要网络吗

    针孔摄像头需要网络吗

  • x27视频美颜怎么调(x27视频美颜怎么开怎么找不到)

    x27视频美颜怎么调(x27视频美颜怎么开怎么找不到)

  • 电话卡不显示怎么办(电话卡不显示电话号码怎么办)

    电话卡不显示怎么办(电话卡不显示电话号码怎么办)

  • Win10 21H1将删除Flash Player 7月将通过星期二补丁彻底删除(win10删除了此电脑)

    Win10 21H1将删除Flash Player 7月将通过星期二补丁彻底删除(win10删除了此电脑)

  • 减免税款最终转到哪个科目?
  • 公司购买股票如何做账
  • 总账和成本哪个工资高
  • 房产税简易征收的时间
  • 营业收入包括投资净收益吗
  • 企业所得税季报时间
  • 装修辅材行业辅材现状
  • 汇算清缴所得税退税会计分录怎么做
  • 红冲发票跨年怎么操作
  • 工业企业电费出售会计分录怎么写?
  • 税前扣除的职工福利费标准
  • 过期食品翻新
  • 原材料的运输费怎么做会计分录
  • 申报个人所得税的详细流程
  • 小规模纳税人开了3%的专票还能享受1%
  • 怎么确认收到的钱是哪个项目的
  • 2年前的增值税发票能不能用
  • 税前不得扣除的项目
  • 哪些行为触犯了刑法
  • 小微企业的资产总额看哪里判断的
  • 资产负债表如何调平
  • 一般纳税人购进原材料支付的增值税
  • 运费专票当月如何入账
  • 电脑插上u盘
  • 计提的跌价准备销售时怎么处理
  • php怎么启动
  • 农产品的进项税额转出公式
  • php教程 ftp 函数
  • 工程结算需要哪些施工方案
  • 酒店装修费用计入什么科目
  • 什么是工资薪金所得
  • php curl_init
  • 什么叫财政专户返还方式
  • element级联动态加载
  • php 替换字符
  • php url函数
  • 去年的所得税计提多了怎么做分录
  • python uiautomator2的点击操作
  • 契税计入会计利润总额吗
  • 公司账号能给个人打款吗
  • wordpress全站伪静态
  • 跨年度退回的公共预算支出
  • 个税子女教育扣除申报方式怎么选
  • 预付款已经开了发票要怎么做账
  • 申报纳税的步骤
  • 劳动仲裁经济补偿金写多了
  • 卖废品收入计入需要交税吗
  • 三证合一后税务登记机关
  • 另一种收到企业信息英文
  • 公司购买的空调
  • 公司转账转错账户
  • 缴纳的增值税怎么做账
  • 筹资费用和财务费用一样吗
  • 期初数不对怎么办
  • 融资租赁承租方怎么做账
  • 外购货物分配给股东
  • 发票线上申领线下配送
  • mysql innode
  • win10收不到短信验证码
  • mac系统命名规律
  • mac chrome浏览器插件
  • linux的发展
  • windows xp登录无法进入桌面
  • rtlrack.exe - rtlrack是什么进程 有什么用
  • win7屏幕颜色变了怎么恢复
  • javascript中math.ceil
  • pycharm中连接MySQL数据库
  • jquery fadein 源码
  • django settings.py
  • 一道关于医用口罩的数学题初二
  • JavaScript中Number.MAX_VALUE属性的使用方法
  • python 网络爬虫库
  • 在WINDOWS系统中回收站的作用不包括
  • jquery使用Cookie和JSON记录用户最近浏览历史
  • python27文件夹
  • android界面设计规范
  • 火车票抵扣申报表怎么填
  • 成都税务局网站首页
  • 烟丝和烟有什么区别
  • 茶叶出口退税率为什么是9%不是13%
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设