- #4454 - iterator range output format, and for IO adaptor
- Boost.Range iterator range ioの出力フォーマットとIOのためのアダプタ
- Boost.RangeのIOに関するNeil Grovesからの返答
だいぶ前のチケットですが、完了しました。今までのBoost.Rangeの出力フォーマットは、{1, 2, 3}
というRangeがあったら"123"
という文字列を出力するので、使いものになりませんでした。パースできない。
これを解決するために、boost::adaptors::formatted
というフォーマット設定用のRangeアダプタが新しく入ります。
#include <boost/range/adaptor/formatted.hpp> using namespace boost::adaptors; vector<int> v = {1, 2, 3}; // デフォルトのフォーマット cout << (v | formatted()) << endl; // "{1,2,3}" // 区切り文字(列)を指定 cout << (v | formatted(',')) << endl; // 区切り文字(列)と、プレフィックス/サフィックスを指定 cout << (v | formatted(',', '{', '}')) << endl; // パイプ演算子を使わない関数表記 cout << format(v) << endl;
Boost 1.56.0のリリースにはギリギリすぎて間に合わないので、その次のリリースで入れるそうです。