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