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

  • 境内单位和个人向境外单位提供服务
  • 缴纳房产税怎么记账
  • 公司购入的财务怎么做账
  • 增值税小规模纳税人
  • 残保金计入管理费用还是营业税金及附加
  • 贷款利息是否能降低
  • 材料采购合同需要注意什么
  • 企业缴纳的社保可以税前扣除吗
  • 民非组织捐赠收入免税
  • 购房契税应该交给谁
  • 建筑装饰行业会计分录
  • 置换上市公司资质要求
  • 酒店代金券怎么做账
  • 耕地占用税如何申报缴纳
  • 员工异地交纳保险怎么交
  • 社保公积金会计分录怎么写
  • 劳务发票可以做费用吗怎么做
  • 税盘没有抄报各月,有罚款吗
  • 零售产品的进项税怎么算
  • 不适用研究开发费用税前加计扣除政策的有
  • 企业法人信息变更
  • 生产企业出口退税操作流程视频
  • 自产产品公益性捐赠可以免征增值税吗
  • 进口退运货物基本流程
  • 空调属于什么资产用途
  • 报销业务招待费属于什么现金流量项目
  • 一季度所得税费用怎么算
  • 同一控制亏损企业怎么算
  • 金蝶软件怎么批量审核凭证
  • iphone6s怎么开启开发者选项
  • PHP:oci_pconnect()的用法_Oracle函数
  • 计提小规模增值税怎么做账
  • 王者荣耀体验皮肤什么时候结束
  • 公司买车怎么入户
  • 高薪技术企业研发费用标准
  • 苹果手机铃声删除在哪里
  • 彻底清理缓存
  • 取得企业债券利息为什么要交个人所得税
  • 抵扣进项税额的几种情况是
  • 外购产品会计分录
  • 将自产的应税消费品用于连续生产应税消费品
  • 国内旅客运输服务普票可以抵扣吗
  • 一文通透从输入URL到页面渲染的全过程----高频面试
  • 深度学习数据集—水果数据集大合集
  • thinkphp模糊查询
  • 销项税每月有余额年底怎么处理
  • 基本户转到法人账户会计分录
  • mongodb游记
  • xadmin配置
  • 不符合无形资产摊销条件
  • 美金账户余额截图
  • 增值税申报表填错不影响税额
  • 个税申报逾期罚款怎么算
  • 营业税和营业税额一样吗
  • 不征税收入与免税收入有哪些
  • 研发使用的设备有哪些
  • 润滑油开具增值税专用发票
  • 报名费无发票要补交吗
  • 增值税专用发票和普通发票的区别
  • 本期应补退税额是什么意思
  • 收付实现制下主营业务成本怎么算
  • mysql b+树节点大小
  • windows8文件夹怎么加密
  • 苹果电脑安装虚拟机会有什么影响
  • jquery示例
  • shell中遍历数组
  • 全面了解中国历史英文
  • nodejs前后端数据交互
  • 安卓下的分件分享怎么弄
  • 批处理界面
  • 拥有一个属于自己的空间高中作文
  • unity3d模型怎么制作
  • jquery返回顶部
  • python数据的概念
  • asynctask优缺点
  • js数组用法
  • python对文件操作采用的统一
  • 广西国家税务局于红林
  • 安徽省低保查询入口官网
  • 土地招拍挂土地出让金
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设