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

  • 个税系统更正申报可以更正几次
  • 报税申报不了
  • 房地产中介门头
  • 允许抵扣的进项税额分为哪几种情况
  • 关联交易金额是付款还是入账
  • 出口退税普票
  • 企业重组个人股东个人所得税
  • 发票到了款未付账务处理
  • 计提存货跌价准备是递延所得税资产吗
  • 一次性预收租金增值税
  • 不是单位职工个税怎么算
  • 人力资源服务费税收编码
  • 支付各种办公费用
  • 支付境外销售佣金增值税扣缴
  • 油罐车运输费用怎么算
  • 如何办理临时经营纳税人设立登记
  • 处于成熟期的企业其预算模式的特点是以什么为起点
  • 价值多少可以确认收入
  • 事业单位研发支出资本化
  • 物业营改增什么时候开始
  • 其他货币资金怎么做账
  • 进口增值税13可以抵扣多少
  • 增值税发票小数点后面小数不能打印
  • 继承有个人所得税吗
  • 房地产企业卖出去的房子需要缴纳城镇土地使用税吗
  • 注销企业很麻烦
  • 上月未计提税费,本月可以补计提吗
  • 微软和google
  • PHP json_encode() 函数详解及中文乱码问题
  • 办理营业执照费用和流程
  • win11如何设置安装位置
  • 图像类别
  • 处置子公司的收益
  • getcodebase
  • 赊销商品属于什么信用
  • 火灾造成存货损失应该作为报废还是盘亏
  • phpinclude
  • php转换字符编码
  • 免施工许可证
  • 预付办公用品费用,未收到发票
  • php使用什么开发工具
  • 原版锯齿
  • 员工不愿意缴纳个税 需要公司承担吗
  • h5页面内嵌到微信
  • 工程项目出纳
  • 增值税发票抵扣联和发票联
  • 稳岗补贴怎么申请步骤
  • 税法折旧和会计折扣会计分录
  • python迭代器iterator
  • 预算会计的核算对象是什么
  • 加油票没有纳税怎么办
  • 国有资产无偿划转的会计处理
  • 基本运算符号有乘方吗
  • 一般纳税人报税需要填哪些表
  • 企业不交所得税的情况
  • 财务软件在建立账套功能中提供了
  • 企业所得税季度预缴纳税申报表
  • 无形资产如何摊销公式
  • 企业主要的工会是什么
  • 收到上市公司分红企业所得税减半征收的情景
  • 接受其他企业现金捐赠会计分录
  • 未打印税务分类怎么处理
  • 固定资产专票可以不抵扣吗
  • mysql运行代码
  • linux安装rpm软件包的命令
  • puppet部署
  • xp桌面快捷方式不见了
  • Windows7如何查看电脑配置
  • zabbix添加客户端
  • 注册表cmd
  • Node.js中的全局变量有哪些
  • python中的字符型
  • 收集linux日志
  • actionscript与javascript的区别
  • javascript零基础入门
  • 增值税0申报操作流程
  • 上海地铁和公交乘车码
  • 中国税务社保缴费app下载
  • 企业登录密码是几位数
  • 汽车发票含税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设