progress_display

Download Report

Transcript progress_display

boost::progress_display++
Boost.懇親会 #5 名古屋
2011/05/14
郵便はみがき
おさらい
• Boostのマスコットキャラクター
• ユーザー数3億人
ru‐┐__ ru‐┐
.} Ω_{' ⌒´ヾー、.{
´rー゙f(ノノ))))!i.「
ノ乂k(l゚ ヮ゚ノ'ノ乂
´ ' と}i凹{つ '
fく/{__}〉
´ し'ノ
0%
10
20
30
40
50
60
70
80
90
100%
|----|----|----|----|----|----|----|----|----|----|
******************************************************************
ただし、ソースはアンサイクロペディア
2011/5/14
boost::progress_display++
2
コンストラクタ
progress_display(
unsigned long expected_count,
std::ostream& os, // os is hint
const std::string & s1 = "\n", //leading strings
const std::string & s2 = "",
const std::string & s3 = "" )
// Effects: save copy of leading strings,
// restart(expected_count)
2011/5/14
boost::progress_display++
3
要するに
• カウンタ以外の引数の扱いは実装依存
• ostreamに文字列を出力する必要もなし
• Boostの実装なんてただの飾りです!
• インタフェースこそがBoostの本質
2011/5/14
boost::progress_display++
4
というわけで実装してみた
2011/5/14
boost::progress_display++
5
実装例1
2011/5/14
boost::progress_display++
6
実装例2
2011/5/14
boost::progress_display++
7
実装例2の引数
progress_display progress(count, std::cout,
"クソスレ\n普通\n優良スレ", "スレ評価嬢",
"
88彡ミ8。 /)\r\n"
"
8ノ/ノ^^ヾ8。( i )))\r\n"
"
|(| ∩ ∩|| / /
<ココ!\r\n"
"
从ゝ__▽_.从 /\r\n"
"
/||_、_|| /\r\n"
"
/ (___)\r\n"
"
\(ミl_,_(\r\n"
"
/. _ \\r\n"
"
/_ / \ _.〉\r\n"
" / /
/ /\r\n"
" (二/
(二)\r\n");
2011/5/14
boost::progress_display++
タイトル
凡例
カーソル
8
別の例
2011/5/14
boost::progress_display++
9
まとめ
progress_displayは実用的な
インタフェースを持っている
ここにソースあるのだから、
次の規格には入れましょう
2011/5/14
boost::progress_display++
10
今嘘言いました!
キャンセルボタン押したとき
に中断できるように
bool canceled() const;
だけ追加してました、、、
2011/5/14
boost::progress_display++
11
おしまい
0% 10 20 30
40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
2011/5/14
boost::progress_display++
12
参考URL
• Boost.Timer
http://www.boost.org/libs/timer/
• Progress display - アンサイクロペディア
http://ja.uncyclopedia.info/wiki/Progress_display
2011/5/14
boost::progress_display++
13