boost 中round和roundf函数的用法
来源:互联网 发布:sql 格式化 java代码 编辑:程序博客网 时间:2024/06/01 19:56
round()和roundf()函数是我在hog3D源码中碰到的,编译的过程中总是报错,通过网上查找发现round()函数和roundf()函数都是C++ boost库中的函数,如果需要调用这两个函数,需要:
注:我是在vs2012的环境下进行编译的,所以需要先下载boost库,然后对vs2012做相应的配置,具体步骤可参考:http://blog.csdn.net/chenkent888/article/details/10229369
(1)添加引用头文件:
#include <boost/math/special_functions/round.hpp> //对应于round()函数的头文件
#include <boost/math/tr1.hpp> //对应于roundf()函数的头文件
(2)由于在 boost::math::tr1命名空间中支持C99中的函数
double round(double x);float roundf(float x);long double roundl(long double x);
在 boost::math命名空间中,定义的round()函数为:
template <class T, class Policy>inline T round(const T& v, const Policy& pol){ BOOST_MATH_STD_USING if(!(boost::math::isfinite)(v)) return policies::raise_rounding_error("boost::math::round<%1%>(%1%)", 0, v, v, pol); return v < 0 ? static_cast<T>(ceil(v - 0.5f)) : static_cast<T>(floor(v + 0.5f));}template <class T>inline T round(const T& v){ return round(v, policies::policy<>());}所以,在函数中使用round()函数和roundf()函数时需要加上命名空间,使用
boost::math::round(),这时候调用的即为上面的模板函数
boost::math::tr1::roundf(),调用的就为c99中的 float roundf(float x)函数。
注:添加命名空间的好处不仅能够区分不同命名空间定义的相同函数,而且对于开发的大规模的软件,它的编译时间是很长的,boost库已经在系统中安装创建,然后添加#include <boost/math/tr1.hpp> 并且使用 boost::math::tr1::roundf(x) 将会加速编译时间,减小目标文件的大小,而且还可以加快调试运行时间。
- boost 中round和roundf函数的用法
- 笔记:boost中split函数的用法
- Oracle数据库中:ROUND()函数的用法:
- MATLAB中round函数的用法
- round函数的用法
- sql中详解round(),floor(),ceiling()函数的用法和区别?
- SQL 中详解round(),floor(),ceiling()函数的用法和区别?
- sql中详解round(),floor(),ceiling()函数的用法和区别
- sql中详解round(),floor(),ceiling()函数的用法和区别?
- 【Boost】boost库中function的用法
- 【Boost】boost库中bind的用法
- boost中unordered_map的用法
- c++ tr1和Boost中,tuple、tie的用法
- SQL中round()函数、Ucase()、Lcase()、as的用法
- sql round()函数的用法
- Math类中ceil、floor和round的用法
- ceil函数和intval函数以及round函数的区别用法
- Boost中timer的简易用法
- keil 中常见的几种警告
- linux 命令详解
- Android Service 详解
- jquery.validation.js 使用说明
- You must restart adb and Eclipse
- boost 中round和roundf函数的用法
- Winform不用窗体之间传值
- q3 bsp绘制的直观展示
- javascript firefox 自动加载iframe 自动调整高宽 v20130825
- 8月第3周国内IT技术类网站排行Top15:CSDN第一
- sqlite中文乱码
- c语言虽难,但是只要入门了,学习了那个思想后,就觉得容易多了!
- sublime text 运行python代码,图形无显示
- mysql数据库备份与还原