Hi all,

 I've been experimenting with indirect_iterator, which seems to be a very useful concept.
However, I'm having some trouble getting it to work in the case where I want to fill a container
with pointers to values, not just getting at the data. For example, this compiles but segfaults:

 std::vector < int * > v( 10 );
 std::fill( boost::make_indirect_iterator( v.begin() ),
             boost::make_indirect_iterator( v.end() ),
             1.0
           );

Another case:

 std::vector< boost::shared_ptr<double> > v(10);
 std::vector< boost::shared_ptr<double> > w(10);
 // v gets filled somehow
 std::copy( boost::make_indirect_iterator( v.begin() ),
                boost::make_indirect_iterator( v.end() ),
                boost::make_indirect_iterator( w.begin() )
               );

Why isn't this working? Also, some way to get it to work as a back_insert_iterator would be interesting,
does this exist (aside from writing your own)?  If not, are there any plans to incorporate it in future versions? 

--
Alex Borghgraef

--
Alex Borghgraef