这种方法可以在没有额外选项的情况下使用更少的管道运行。它通常适用于任何类型的输出重定向。
而且您不必按照其他方法的建议检查 is_terminal :
#include <boost/progress.hpp>
#include <boost/timer.hpp>
#include <vector>
int main(int argc,char *argv[])
{
const unsigned long expected_count=20;
boost::progress_display show_progress( expected_count );
for(int i=0;i!=expected_count;++i)
{
volatile std::vector<int> v(1024*1024*128);
++show_progress;
}
return 0;
}
输出是:
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
在 progress_display 构造函数期间打印标尺。
然后在 ++show_progress 上,进度条逐渐被*填满;