文章目录
1. 断言概念
所谓“断言”,它是一种表现行为,亦是一种编程手段。它总是将需要“返回值为真的判别式”放到语句中,其所扮演的角色就是告知系统当程序的某个条件其值不为真的时候,退出程序,不再继续执行下去。需要知晓的是,断言并不是代码中必不可缺的部分,因为它是可替代的,用if(条件判断)、#error(预处理宏)也能完成断言同样的效果。存在即合理,断言必然有它存在理由。它可以快速定位到程序出错的位置,比 if 更简洁,比 #error 更加强大、适用。
2. 静态断言satic_assert 与运行时断言assert
在C++11之前,assert断言最为我们熟悉,static_assert是在C++11中才引入的新特性。欲识其“人”先观其貌,从语句的声明上,差异不大。以下分别是assert和static_assert的声明格式: