Boost–progress_timer
2012-03-26 17:43 Rollen Holt 阅读(604) 评论(0) 编辑 收藏 举报progress_timer继承自timer,但是精度为2,为了扩展精度,我们自己实现一个类,代码如下:
#include <iostream> #include<boost/progress.hpp> #include <boost/static_assert.hpp> using namespace std; using namespace boost; template<int N=2> class new_progress_timer :public timer{ public: new_progress_timer(ostream &os=cout):m_os(os){ BOOST_STATIC_ASSERT(N>=0&&NULL<=10); } ~new_progress_timer(){ try{ istream::fmtflags old_flags=m_os.setf(istream::fixed,istream::floatfield); streamsize old_prec=m_os.precision(N); //输出时间 m_os<<elapsed()<<"s\n"<<endl; //恢复流的状态 m_os.flags(old_flags); m_os.precision(old_prec); }catch(...){ //do nothing } } private: ostream &m_os; }; int _tmain(int argc, _TCHAR* argv[]) { new_progress_timer<10> t; //cout<<t.elapsed(); 这里不需要亲自调用,当超过t的作用域的时候自动调用 return 0; }
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================