Boost.Assignのlist_ofは、range()メンバ関数を使用することによって、他のRangeからlist_ofにデータを追加できるようです。list_ofは型変換演算子で他のRangeに変換可能なところが便利なので、これをpstade::oven::copiedの代わりのようにして使うことができます。
以下は、これを使った0〜10のRangeを生成する処理:
#include <iostream> #include <vector> #include <boost/assign/list_of.hpp> #include <boost/range/irange.hpp> #include <boost/range/algorithm/for_each.hpp> int main() { const std::vector<int> v = boost::assign::list_of(0).range(boost::irange(1, 10 + 1)); boost::for_each(v, [](int x) { std::cout << x << std::endl; }); }
0 1 2 3 4 5 6 7 8 9 10
boost::assign::list_ofは1要素は必ず入れないといけないのがめんどくさいですね。
そのため、range()に渡すirangeは、1からの値を生成しています。