https://blog.csdn.net/zgaoq/article/details/116306033
c++11中的静态断言(static_assert)
在c++11中引入了,目的是在编译时就能检查处一些问题。写法如下:
static_assert(常量表达式,提示字符串);
如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条编译错误,错误位置就是该static_assert语句所在行,错误提示就是第二个参数提示字符串。
1.使用static_assert,我们可以在编译期间发现更多的错误,提前找出错误的原因。
2.性能方面,由于是static_assert编译期间断言,不生成目标代码,因此static_assert不会造成任何运行期性能损失。
https://blog.csdn.net/qq_43331089/article/details/124400657
assert是运行期的判断,并且会强制终止程序,一般要求只能用于debug版本中,是为了尽可能快的发现问题。assert是要从release版本中去掉。所以一般开发会重新定义assert宏。
false执行此断言,程序卡在这里。