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

  • 闲鱼芝麻信用怎么提高(闲鱼芝麻信用怎么变成极好)

    闲鱼芝麻信用怎么提高(闲鱼芝麻信用怎么变成极好)

  • 锁屏音乐播放器如何关闭(锁屏音乐播放器怎么开启)

    锁屏音乐播放器如何关闭(锁屏音乐播放器怎么开启)

  • 华为mate30是不是双扬声器

    华为mate30是不是双扬声器

  • 快手点赞动态怎么删除(快手点赞动态怎么隐藏)

    快手点赞动态怎么删除(快手点赞动态怎么隐藏)

  • 电脑黑屏怎么强制关机(电脑黑屏怎么强制恢复出厂设置)

    电脑黑屏怎么强制关机(电脑黑屏怎么强制恢复出厂设置)

  • 华为p40pro与p40pro+区别(华为p40pro与p40pro+的区别)

    华为p40pro与p40pro+区别(华为p40pro与p40pro+的区别)

  • acer电脑开不了机怎么办(acer电脑开不了机)

    acer电脑开不了机怎么办(acer电脑开不了机)

  • 数据质量报告内容包括哪些(数据质量报告内容包括什么)

    数据质量报告内容包括哪些(数据质量报告内容包括什么)

  • win7重装几个小时(重装一个win7系统多少钱)

    win7重装几个小时(重装一个win7系统多少钱)

  • 超长待机是什么意思(超长待机是什么意思?)

    超长待机是什么意思(超长待机是什么意思?)

  • qq刷新不了是怎么回事(qq刷新不过来怎么办)

    qq刷新不了是怎么回事(qq刷新不过来怎么办)

  • ps虚化图片怎么弄(ps如何虚化图片)

    ps虚化图片怎么弄(ps如何虚化图片)

  • 苹果11自动关机怎么回事(苹果11自动关机打不开怎么办)

    苹果11自动关机怎么回事(苹果11自动关机打不开怎么办)

  • qq通话异常结束是怎么回事(qq通话异常结束对方能看到吗)

    qq通话异常结束是怎么回事(qq通话异常结束对方能看到吗)

  • xsmax内存多大(xsmax有多大内存可以选择)

    xsmax内存多大(xsmax有多大内存可以选择)

  • 手机信号线断了有什么影响(手机信号线断了能开机吗)

    手机信号线断了有什么影响(手机信号线断了能开机吗)

  • 云易恒基是做什么的(云易恒基有没有前景)

    云易恒基是做什么的(云易恒基有没有前景)

  • iphonexs参数(iphonexsmax参数)

    iphonexs参数(iphonexsmax参数)

  • 金猪里的好友怎么删除(金猪有钱真的能提现吗)

    金猪里的好友怎么删除(金猪有钱真的能提现吗)

  • 三星note10+摄影达人版有什么区别(三星note10+摄影技巧)

    三星note10+摄影达人版有什么区别(三星note10+摄影技巧)

  • 按照网络的拓扑结构划分以太网(Ethernet)属于(按照网络的拓扑结构局域网分为)

    按照网络的拓扑结构划分以太网(Ethernet)属于(按照网络的拓扑结构局域网分为)

  • 苹果xr有256g内存的吗(苹果xr有没有256的内存)

    苹果xr有256g内存的吗(苹果xr有没有256的内存)

  • qq直播怎么开(qq直播怎么开不了)

    qq直播怎么开(qq直播怎么开不了)

  • 苹果手机怎么设置手写(苹果手机怎么设置铃声来电铃声)

    苹果手机怎么设置手写(苹果手机怎么设置铃声来电铃声)

  • 同一个苹果id怎么不共享通话记录(同一个苹果id怎么改锁屏密码)

    同一个苹果id怎么不共享通话记录(同一个苹果id怎么改锁屏密码)

  • 笔记本电源已接通未充电解决方法(惠普笔记本电源适配器)

    笔记本电源已接通未充电解决方法(惠普笔记本电源适配器)

  • 进项税额转出意思是下月还得缴吗
  • 转让金融资产需要交税吗
  • 金税盘不用了之后要抄报税吗
  • 餐饮业申请发票
  • 个人所得税年底返税
  • 软件 折旧年限
  • 增值税抵扣可以跨月吗
  • 开票时显示没有原票抄报信息
  • 纳税人经营所得预缴申报表怎么填
  • 个人出售住房缴纳房产税吗
  • 临时营业执照有效期多久
  • 小规模开票数量怎么算
  • 房地产开发资质管理办法
  • 受托加工物资如何做账
  • 物业公司开停车位费全电发票
  • 增值税进项税额转出是什么意思
  • 30万的装修工程利润一般是多少
  • 收到的专票都必须开吗
  • 租金小规模开票税率
  • 物业公司场地租赁费怎么开票
  • 税收分类编码选错了有事吗
  • 没有认证的进项发票怎么入账
  • 食堂货款报账明细表
  • 保险付款后几天给发票保单
  • 资产处置收益属于利润表项目吗
  • 苹果macbook 系统
  • 如何在windows11中安装google play
  • 景点门票定价依据
  • 招待费专用发票需要认证吗
  • 房地产企业应该如何与其他产业合作
  • windows 7怎么打开虚拟化
  • 结转待抵扣
  • 建造一座污水处理池投资了45万元
  • yolov5参数设置
  • 企业所得税计提会计分录怎么做
  • 土地增值税清算全流程实战案例
  • 小规模纳税人免税额度是多少
  • 企业工商年检什么意思
  • 人脸识别测颜值,al
  • js-cookie vue
  • 律师费怎么要回来
  • 开票系统在哪
  • 支付宝支付凭证在哪里查
  • 制作费开票属于什么编码类型
  • 注销公司流程超详细
  • 固定资产指的是几年度
  • 车船税征收范围有
  • 销售提成如何入账
  • 资本公积金转增股本是利好吗
  • 发票未到货已入库会计分录 原材料
  • 哪些固定资产不需要计提折旧
  • 公司与公司之间可以借款吗
  • 分支机构属于小型微利企业吗?
  • 进出口企业外汇额度
  • 计提工资是否要交税
  • 投资性房地产公允价值小于账面价值
  • 未分配利润借方是什么意思
  • 提供劳务的收入计入什么科目
  • sqlserver中with(nolock)深入分析
  • 在Vista、Windows7下玩英雄无敌3绿色版
  • mac声音无法调节
  • spamsub.exe - spamsub进程是什么文件
  • linux 限制内存
  • win10怎么转移文件到其他盘
  • 省去911元 教你如何将Win10家庭版改造成专业版
  • 硬件茶谈win10系统安装
  • iptables centos
  • linux rpm解压
  • 批处理执行bat文件
  • 批处理文件命令大全
  • perl主要用处
  • javascript数据类型有哪些
  • 山西地方税务局领导班子
  • 广东高速费用支付宝支付如何开发票
  • 外经证注销网上操作
  • 盐城城南新区的邮政编码是多少号
  • 出口退税申报已通过,又被删除,报关单号能用吗
  • 如何在国税网查看社保人员信息
  • 税收优惠政策有什么公司受影响
  • 税务申报网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设