pop_iterator
- pop_backをrange adaptorで表現する
- 定数時間で返すために"rangeをendの手前まで走査する"ということは出来ないことに注意
- TraversalCategoryに応じて異なるiterator adaptorが必要になる
- これをRangeなしで使いやすいインターフェイスにするのは難しい (poppedの実装)
[]#include[] []<iostream>[]
[]#include[] []<sstream>[]
[]#include[] []<pstade/oven/popped.hpp>[]
[]#include[] []<pstade/oven/stream_lines.hpp>[] []// thanks to hamigaki.[]
[]#include[] []<boost/foreach.hpp>[][]int[] []main[][]()[]
[]{[]
[]using[] []namespace[] []pstade[][]::[][]oven[][];[][]std[][]::[][]stringstream[] []sin[][];[]
[]sin[][] << [][]"ABC\nDE\nFGHI\nZZZ"[][];[]
[]BOOST_FOREACH[][] ([][]std[][]::[][]string[] []const[][]& [][]line[][], [][]stream_lines[][]([][]sin[][])|[][]popped[][]) {[]
[]std[][]::[][]cout[][] << [][]line[][] << [][]std[][]::[][]endl[][];[]
[] }[]
[]}[]