しるふぃずむ

どうもプログラマです。好きなものはC#とジンギスカンです。嫌いなものはJava。プログラムおもちろいね。

boost

Boost.勉強会 #14 東京

Boost.勉強会 #14 東京 : ATND補欠から昇格できたようなので,ドキドキしつつ初参加します. 皆様どうぞよろしくお願いします.

Boost.Coroutine

色々終わったので1.53.0で追加されたライブラリをいじってみる。

min_element + indexed

こんなコードを書きたかった. auto min = boost::min_element(rng | boost::adaptors::indexed(0), pred); // error auto i = min.index(); Rangeが何であれindexedを通すとSinglePassRangeになってしまうんですね. でもってmin_elementは比較のために複数…

fusion::transformが動かない

transform_viewは生成できますがそこから何してもエラー. 戻り値型の推論でこけてるみたいだけれど,さっぱりわかりません. 何か変な勘違いしてますかねえ…保留. int main(int, char*[]) { struct str { template<typename T> auto operator()(T const& x) const -> s</typename>…

range adaptorまとめ

まだ結構な頻度でこういうのあるんだっけ?ってなるのでリファレンスから引っ張ってきてメモ。

boost::iteration + boost::adaptors::taken_while

boostタグつけてますがそのものではなくOvenToBoostプロジェクトの話.

std::tuple同士の加算

いちいち要素ごとに足すのが面倒です. 要素ごとにそれぞれのoperator+に委譲する形で実装しようとしたんですが, MSVCには未だにVariadic Templateがなくstd::tupleの実装がエミュレーションでしかないので これまた面倒な事に. Boost.PPを使って無理やり…

Boost.Optional

の,特にについての話. 所有権は要らない=破棄に関与したくないけれど参照が欲しいときがちょくちょくあります. Boost.Optionalが(現行のものだと色々問題はあるようですが)その要求を満たしてくれそうです.

Boost.PPを使ってStrongly Typed Enumとstd::string相互変換をまとめて定義する

というわけで書きなおしです. ありがとうBOOST_PP_SEQ_FOR_EACH.まさにそういうことがしたかったのでした.