|  | Home | Libraries | People | FAQ | More | 
template <typename Container> shared_container_iterator<Container> make_shared_container_iterator(Container::iterator base, boost::shared_ptr<Container> const& container)
          This function provides an alternative to directly constructing a shared_container_iterator. Using the
          object generator, a shared_container_iterator
          can be created and passed to a function without explicitly specifying its
          type.
        
          This example, similar to the previous, uses make_shared_container_iterator() to create the iterators.
        
#include "shared_container_iterator.hpp" #include "boost/shared_ptr.hpp" #include <algorithm> #include <iterator> #include <iostream> #include <vector> template <typename Iterator> void print_range_nl (Iterator begin, Iterator end) { typedef typename std::iterator_traits<Iterator>::value_type val; std::copy(begin,end,std::ostream_iterator<val>(std::cout,",")); std::cout.put('\n'); } int main() { typedef boost::shared_ptr< std::vector<int> > ints_t; { ints_t ints(new std::vector<int>()); ints->push_back(0); ints->push_back(1); ints->push_back(2); ints->push_back(3); ints->push_back(4); ints->push_back(5); print_range_nl(boost::make_shared_container_iterator(ints->begin(),ints), boost::make_shared_container_iterator(ints->end(),ints)); } return 0; }
          Observe that the shared_container_iterator
          type is never explicitly named. The output from this example is the same
          as the previous.