shared_container_iterator

  • BOOST_FOREACHは、一時オブジェクトをコピーして保持するが、当然、元のソースまでは手に負えない
    • 元の一時オブジェクト std::string("abc") は、BOOST_FOREACHのループ内で使うころには消えている
  • BOOST_FOREACHで使えるようにするために、iterator自身がリソースを管理しなくてはならない場合がある
    • これではRangeがリソースを管理できるという利点が失われてしまう
    • BOOST_FOREACHの存在が、Rangeの設計に影響を与えてしまうということ
  • そこで、boost::shared_container_iteratorから作ったshare_range・・・ソースコード
  • リソースをiteratorが管理するという特性を後からRangeに追加できる

[]#include[] []<pstade/oven/share_range.hpp>[]
[]#include[] []<pstade/oven/sort_range.hpp>[]
[]#include[] []<algorithm>[]
[]#include[] []<iostream>[]
[]#include[] []<string>[]
[]#include[] []<boost/foreach.hpp>[]

続きを読む