首页 > 其他 > 详细

static_assert和numeric_limits

时间:2020-09-02 22:32:39      阅读:48      评论:0      收藏:0      [点我收藏+]

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类型如果以十进制表示的话的最多的有效数字位数。

static_assert和numeric_limits

原文:https://www.cnblogs.com/xiongxinxzy/p/13603711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!