static_assert 参考: https://blog.csdn.net/drdairen/article/details/76689014
assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。assert分为动态断言和静态断言2种。
c++0x引入了static_assert关键字,用来实现编译期间的断言,叫静态断言。
语法:static_assert(常量表达式,要提示的字符串);
如果第一个参数常量表达式的值为false,会产生一条编译错误,错误位置就是该static_assert语句所在行,第二个参数就是错误提示字符串。
然后通过调用 abort 来终止程序运行。
#include <iostream> #include <stdio.h> #include <limits> using namespace std; int main() { cout<< numeric_limits<float>::digits10 <<endl; float ff = 11111; float dd = 1111111; float cc = 11111111; cout<<ff<<" "<<dd<<" "<<cc<<endl; return 0; }
输出:
? t6 ./test1 6 11111 1.11111e+06 1.11111e+07
numeric_limits<float>::digits10 : 表示float类型如果以十进制表示的话的最多的有效数字位数。
原文:https://www.cnblogs.com/xiongxinxzy/p/13603711.html