Boost 1.46.0から、Boost.Rangeにany_rangeが導入されました。 any_rangeは、Type ErasureによってあらゆるRange型をlazy状態に保ったまま格納するための型で、Rangeアダプタの適用結果を変数に持つ場合や、Rangeアダプタの適用結果を関数の戻り値にしたい場合などに使用します。 #include <iostream> #include <vector> #include <boost/assign/list_of.hpp> #include <boost/range/adaptor/filtered.hpp> #include <boost/range/any_range.hpp> #include <boost/range/algorithm/for_each.hpp> bool is_even(int x) { return x %