Boost开发指南-2.5小结

总结

timer和 progress_timer是两个用于计时的小工具,实现原理很简单,使用了c标准中的std::clock(),精度不高但足够用。特别是progress_timer,它利用了C++中析构函数会被自动调用的特点,能够自动显示时间,用起来更方便。但如果我们需要更高精度的计时,那么应该使用timer库的另一个组件:cpu_timer。

progress_display是一个可以显示程序执行进度的工具,在很耗时的应用程序中可以给出友好的进度提示,使用也很容易。但它使用的是字符界面,不够好看,而且很容易被程序的其他输出打乱显示。使用它时我们必须保证自己的程序不能有任何可能的输出,否则progress_display就完全失去了意义。

progress_timer和 progress_display还有一个有趣的特点是它们都私有继承了noncopyable类,防止被无意的拷贝而破坏了正确的行为。noncopyable是Boost库的一个实用工具类。

日期处理是生活中的常见问题,但C++标准中并没有制定这方面的规范,date_time库填补了这个空白,提供了基于格里高利历的日期时间处理,功能非常全面。它支持时间点、时间长度和时间区间等基本概念,提供了从年月日到时分秒、微秒乃至纳秒等许多级别的时间分辨率,还重载了许多操作符,可以进行比较、加减等运算,能够满足绝大多数程序对日期时间处理的要求。

日期与时间的处理很复杂,date_time库使用许多工具来简化工作,如日期、时间迭代器以指定的时间间隔遍历时间,时钟类获得所需精度的当前时间,时区与本地时间转换,定制日期时间的输出格式等等,它们比 c语言中稀少且简陋的时间处理函数要强大很多,而且易于使用。

date_time 库也有小小的缺憾,它不能处理1400年以前的日期,因此无法用它来研究那之前的历史。但总的来说date_time的贡献是卓越的,它赋予了我们在C++中自由操纵时间的能力,值得我们认真学习并掌握。另外要说的是:本章并没有完全覆盖date_time库的所有内容,更多的功能还请读者自己发掘。

你可能感兴趣的:(Boost,c++)