Oven

Rangeの要素をstatic_castとかdynamic_castする

Rangeの要素の型を変換したいと思ったときに、Ovenのconverted Rangeアダプタだと、implicit_castしかできなくて、static_castとかdynamic_castとかできないので、できたらいいなと思った。 transformedと関数オブジェクトとかboost::lambda::ll_static_cast…

Boost.Rangeのirangeのstepに対してOvenのsteps

http://homepage1.nifty.com/herumi/diary/1105.html#13 Ovenは意図通りの挙動だった。 (というよりOvenには同様の機能が無いのでstepsを使った。) boost1.46.1 Ovenはtrunk(たぶん現行のリリースの1.04.3でも問題ない) #include <iostream> #include <pstade/oven/algorithm.hpp> #include <pstade/oven/counting.hpp> #incl</pstade/oven/counting.hpp></pstade/oven/algorithm.hpp></iostream>…

P-Stadeライブラリのtrunkをインクルードディレクトリに指定するとBoost.Spirit.Qiがコンパイルエラーになる。

長くなったのでこのエントリに移しました。msvc2008で確認。ほかは知らにゃい。 Boost1.45, 問題となったpstade/trunk/pstade/boost/utilityのリビジョンは1481C:\Program Files\pstade\trunk\pstadeをインクルードディレクトリに指定して #include <boost/spirit/include/qi.hpp> int mai</boost/spirit/include/qi.hpp>…

STL非互換コンテナのRange

この記事はC++ Advent Calendar jp 2010 : ATNDの参加記事です軽い気持ちでAdvent Calenderに参加してしまった事を若干後悔しながら この記事を書いておりますが、なにぶん僕はそんな変態プログラミングが出来るわけでもないですし、変態じゃないですし、 そ…

removedアダプタ

Boost.Filesystem v3調べ物メモ - Faith and Brave - C++で遊ぼう removedアダプタは僕も欲しいかも・・・! #ifndef HWM_REMOVED_HPP_ #define HWM_REMOVED_HPP_ #include <pstade/oven/detail/base_to_adaptor.hpp> #include <pstade/oven/detail/filter_iterator.hpp> #include <pstade/result_of.hpp> #include <pstade/oven/range_value.hpp> #i…</pstade/oven/range_value.hpp></pstade/result_of.hpp></pstade/oven/detail/filter_iterator.hpp></pstade/oven/detail/base_to_adaptor.hpp>

enumerate Rangeアダプタがすっきりした

前々回、こんなのを作ったけど、any_rangeを使ったりしてなんだか汚い感じでしたし、 counting rangeのDifferenceかなんかの型がmsvcでwarning:4244を出したりして微妙だったので改良を。 #ifndef HWM_ENUMERATE_HPP_ #define HWM_ENUMERATE_HPP_ #include <pstade/result_of.hpp> </pstade/result_of.hpp>…

演算子の優先順位、Range

オウフ・・・ using namespace pstade::oven; int v[] = { 1, 2, 3, 4, 5, 6, 7 }; int a = 4; BOOST_AUTO(it, find(v, a)); return (it == v|end) ? *it : -1; なんか通らない通らない、何がおかしいのやらってよくわかんないけどどうしたもんだって思っていたら…