boost の boost/progress.hpp を使えばOK
#include <boost/progress.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/thread/thread.hpp> int main(int argc,char *argv[]) { const unsigned long expected_count=100; boost::progress_display show_progress( expected_count ); for(int i=0; i<expected_count;++i) { boost::this_thread::sleep(boost::posix_time::milliseconds(10)); ++show_progress; } return 0; }
boost/progress.hpp 自体は追加でライブラリをリンクする必要はなく,ヘッダファイルをinclude するだけで良い
ただし上記サンプルコードは boost/thread/thread.hpp の sleepを使っているので,ビルド時に,ライブラリ libboost_thread と libboost_system のリンクする必要がある
GCCでビルドするなら
$ g++ sample.cpp -lboost_system -lboost_thread