c++编写自己的assert断言

文章目录

  • 前言
  • 实现

前言

c + + c++ c++中,assert只在debug模式下起作用,为了在release下也使用,我们可以实现自己的assert

实现

#include<iostream>
#include<cstdlib>bool myAssert(bool expr, const char* file, const char* func, int line)
{if (!expr){std::cerr << "[Assertion failed], "<< "file: " << file	<<", "<< "function: "<<func<<","<< "line: " << line<< "." << std::endl;return false;}return true;
}#define MY_ASSERT(expr) myAssert(expr, __FILE__, __FUNCTION__, __LINE__)//#define MY_ASSERT(expr) \
//	if (!(expr)) { \
//		std::cerr<<"Assertion failed: (" #expr "), function "<<__FUNCTION__ \
//		<<", file "<<__FILE__<<", line "<<__LINE__<<"."<<std::endl; \
//		return false; \
//	}int main()
{int x = 5;if(!MY_ASSERT(x == 5)) return 2;if(!MY_ASSERT(x == 0)) return 3;std::cout << "the line will not be executed if the second assert fails." << std::endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

if/case条件测试语句

一 条件测试 1.1返回码 $? $? 返回码 用来哦按段命令或者脚本是否执行成功 0 true为真就是成功成立 非0 false 失败或者异常 1.2 test 命令 可以进行条件测试 然后根据返回值来判断条件是否成立 -e &#xff1a;exist 测试目录或者目录是否存在 -d : director…

多目标跟踪 (MOT) 算法简介

据说即将开始的欧洲杯将会采用VAR来辅助裁判执法&#xff0c;这无疑将成为本届赛事的一大亮点。VAR&#xff0c;即视频助理裁判&#xff0c;是指在足球比赛中&#xff0c;裁判可以通过视频回放来辅助做出判罚。自2017年国际足联正式将VAR引入足球比赛以来&#xff0c;它已经在世…

【产品经理】订单处理6-审单方案

电商系统中订单管理员会对特殊类型的订单进行审核&#xff0c;普通订单则自动审核&#xff0c;本节讲述自动审单方案、手动审单以及加急审单。 一、自动审单 自动审单方案可按照方案形式制定&#xff0c;可一次性制定多套审单方案。 1. 审单通过条件有 执行店铺&#xff…

同三维T80006EHL-4K30CN 单路4K30 HDMI编码器(全国产化)

同三维T80006EHL-4K30CN 单路4K30 HDMI编码器 带1路HDMI环出和1路3.5音频输入&#xff0c;支持4K30&#xff0c;所有元器件全国产 一、 产品简介&#xff1a; T80006EHL-4K30CN 4K编码器&#xff08;采集盒&#xff09;是一款全国产化的专业4K HDMI音视频编码产品&#xff0c;…

2024年先进机械电子、电气工程与自动化国际学术会议(ICAMEEA 2024)

2024年先进机械电子、电气工程与自动化国际学术会议(ICAMEEA 2024) 2024 International Conference on Advanced Mechatronic, Electrical Engineering and Automation 会议地点&#xff1a;杭州&#xff0c;中国 网址&#xff1a;www.icameea.com 邮箱: icameeasub-conf.c…

大型ERP设计-业务与功能指引:外币折算与辅助账套

外币折算与辅助账套 前言&#xff1a;在对ORACLE和SAP的核心模块功能全面解读的基础上&#xff0c;给出大型ERP设计的建议-业务与功能指引&#xff0c;企业选型、开发大型ERP软件的公司和ERP顾问可以参考。模块包括财务、计划与制造、供应链、项目及设备(MRO)&#xff0c;初步预…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习?)

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时&#xff0c;是把“速度&qu…

【HarmonyOS NEXT 】鸿蒙detectBarcode (图像识码)

本模块提供本地图片识码和图像数据识码能力&#xff0c;支持对图像中的条形码、二维码、多功能码进行识别&#xff0c;并获得码类型、码值、码位置信息。 起始版本&#xff1a;4.1.0(11) 导入模块 import { detectBarcode } from kit.ScanKit; InputImage 待识别的图片信息…

【自记录】记一台i7四代老爷笔记本重装Win10 22H2

1 背景 手上有一台退役的老爷笔记本&#xff0c;清华同方锋锐 U430。因为比较轻便&#xff0c;最近重新翻出来用于临时抓个包和简单的脚本语言&#xff08;比方说Python&#xff09;编辑工作。但是现在像VSCode的新版本都要求Win10以上&#xff0c;像Continue这类的AI插件都跑…

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory 目录 ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory1. 启动 SSH 代理2. 添加 SSH 密钥3. 使用 Git Bash 或其他终端4. 使用 Pageant&#xff08;适用于 PuTTY 用…

基于DDD的编码实践

分层设计 领域驱动设计&#xff08;Domain-driven design, DDD&#xff09; 作为一种复杂软件系统的应对方案&#xff0c;在设计和编码提供了一种新的解决方式&#xff0c;即领域驱动&#xff0c;要求程序员在设计和编码时从领域专家的角度出发来实现架构/代码&#xff0c;做到…

工作随机:oracle集群下的vip intermediate,failed over处理

文章目录 前言一、问题排查二、恢复db2使用1.确认db2 vip状态2.恢复db2 的vip3.检查监听&#xff1a; 前言 在对数据库进行巡检发现&#xff0c;集群中一个节点的备份没有执行&#xff0c;未生成当天的任何日志&#xff0c;查询/var/spool/oracle 信息发现提示&#xff1a;no …

经验分享,在线文本比较工具

这里分享一个在线文本比较工具&#xff0c;打开网页即用&#xff0c;很方便 网址&#xff1a; https://www.jq22.com/textDifference 截图&#xff1a;

Python语言在地球科学交叉领域中的实践技术融合应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

PHP表单设计:确保必需字段完整性的最佳实践

在开发网页应用程序时&#xff0c;设计一个具有必需字段的PHP表单是至关重要的。必需字段是用户提交表单时必须填写的信息&#xff0c;它们对于确保数据完整性和准确性至关重要。本文将从多个方面讨论如何在PHP表单中设计必需字段&#xff0c;并探讨确保表单数据完整性的最佳实…

代码审计中XSS挖掘一些体会

0x01 XSS的挖掘思路 1.1 反射型 直接搜索 echo print_r print之类的函数即可 也可以寻找$_GET变量来判断是否存在输出&#xff08;不过对于代码审计来说除非实在挖不出漏洞&#xff0c;否则没必要关注反射xss&#xff09; 1.2 dom型 和反射型差不多 需要看网站的前端javascr…

openGauss 6.0一主二备高可用架构部署,可靠很行

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

MySQL JDBC驱动包引入有版本要求吗

提示&#xff1a;有关数据库的任何操作&#xff0c;请事先都做好备份&#xff0c;一定不会错的&#xff1b; 文章目录 前言一、com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver如何选择&#xff1f;1、概念2、引入驱动3、总结 前言 新老项目的交替中&#xff0c;如果你使用的…

【并发编程实战】内存模型--解决可见性和有序性的利器

一.前言 在前面讲了三个问题&#xff0c; 缓存导致的可见性问题&#xff0c;编译优化带来的有序性问题&#xff0c;线程切换带来的原子性问题。既然存在问题&#xff0c;那么总要有解决方案的&#xff0c;这一章里主要就是解决这三个问题的关键点--内存模型 二.内存模型 2.1 …

Python 使用 Thick 方式连接 Oracle Database BaseDB 23ai

Python 使用 Thick 方式连接 Oracle Database BaseDB 23ai 1. 下载Basic.zip 和SQL*Plus&#xff08;.zip&#xff09;2. 配置环境变量3. 连接 23ai 1. 下载Basic.zip 和SQL*Plus&#xff08;.zip&#xff09; 到 https://www.oracle.com/database/technologies/instant-clien…