IostreamsIostreamsのtee_deviceを使って2つのデバイスに出力することにしました。RegexC++標準の正規表現ライブラリにおいて、'.'は'\n'や'\t'などにマッチしません。Boost.Regexはデフォルトでは'.'にマッチするようになっています。Functional/Overloaded_Function複数の異なる関数を、ひとつの関数オブジェクトにオーバーロードすることができるライブラリです。同目的で異なる名前、引数の型を持つ関数のあるC時代のライブラリを使うときに重宝しそうです。IostreamsFilterはデータに対して何らかの処理をするために使います。作成したいコンセプトのクラスを継承し、それに対応するメンバを定義することで、簡単に作ることができます。ここではデータを逆順に出力するFilterを作成します。Iostreams使用する上で目立った違いは、改行コードの扱いでした。sinkは、ファイル読み込みの際、改行コード"\r\n"を"\n"に変換します。書き込む際、"\n"を"\r\n"に変換して出力します。ofstreamと同じ動作です。IostreamsIostreamsでは、コンテナを入力元(Source)、出力先(Sink)として使うことができます。Sinkとして使うには、boost::iostreams::back_inserter関数を使います。短いコードで書きたい(I/Oが行える状態にしたい)です。streamのコンストラクタ引数は、Deviceのコンストラクタ引数と同じものを取ります。Iostreamsfiltering_ostream::flushを呼び出すことで処理が完了すると思っていたのですが、そうでない場合がありました。IostreamsBoost.IostreamsにはFilterというものがあります。これを使うことでストリームから入力、ストリームへ出力するデータを加工できます。IostreamsBoost.Iostreamsでできることのひとつとして、ストリームの作成が簡単にできる、というのがあります。それには、まず入出力するデータをやりとりするクラスを作ります。(このクラスをDeviceといいます。IostreamsBoost.Iostreamsを利用してgzip圧縮・展開をすることができます。そのためにはzlibというライブラリをビルドする必要があります。UNIX系のOSではbjamを実行した際、デフォルトでビルドされるよう設定されているのですが、Windowsでは無効になっています。Timeある年がうるう年か調べたり、日付の足し引きをしたり、残り日数を求めたりできる便利機能が一通り揃ってます。from_stringに文字列を渡してインスタンスを生成できるのもいいですね。TimeのGregorianで日付の処理2012-05-20std::getlineで文字区切りC++以下はstd::getlineにstd::stringstreamを渡した場合と、std::cinを渡した場合です。std::</class></sstream></iostream>...std::getlineで文字区切り2012-05-19入力ストリームで数値を切り出すC++char型変数で1文字取って捨ててます。intでstd::string::find()の戻り値を受け取ったりしていたら、実行時にエラーで躓いたので。コンパイラはgcc4.6.3、ターゲットはx64です。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。