概述
assert,用于运行时的检查,当表达式求值为false时,表示断言失败,运行时会报错
#include <string>
#include <iostream>
#include <assert.h>
using namespace std;
class Human{
public:
void setName(string name)
{
assert(name.length() > 0);//设置的名字字符串不能为空
m_name = name;
}
string getName()
{
return m_name;
}
private:
string m_name;
};
int main()
{
Human xiaoMing;
xiaoMing.setName("");
cout<<xiaoMing.getName();
return 0;
}
运行会报断言错误:Assertion failed! Expression: name.length() > 0
该断言可以通过定义NDEBUG来关闭检查:
方法1:在#include <assert.h>前,先定义#define NDEBUG
方法2:编译的时候加入编译选项-DNDEBUG
#error,用于预编译期间的,通常与#ifdef或#ifndef相结合,用于判断某个编译条件是否满足或不满足条件,则输出自定义的编译错误信息:
#ifdef NDEBUG //如果关闭了assert,提示需要启用assert
#error
最后
以上就是重要魔镜为你收集整理的C++(11):assert, #error, static_assert的全部内容,希望文章能够帮你解决C++(11):assert, #error, static_assert所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复