Andy Little wrote:
FWIW Heres some sample code. Its seems a bit lopsided!
std::ofstream out("toolpath_out.txt");
BOOST_FOREACH(boost::shared_ptr<section> sp,vect){
if (sp->m_action == section::reverse){ for( std::vectorstd::string::reverse_iterator iter = sp->m_vector.rbegin(); iter != sp->m_vector.rend(); ++iter){ out << *iter << '\n'; } } else { BOOST_FOREACH(std::string str,sp->m_vector){ out << str << '\n'; } } }
Are there any plans for a BOOST_REVERSE_FOREACH?
I hear the new range library is under construction, which will enable: BOOST_FOREACH (int x, vect|reversed) { } A current workaround is maybe something like: template< class Range > boost::iterator_range< boost::reverse_iterator< typename boost::range_result_iterator<Range>::type > > make_reverse_range(Range& rng) { return boost::make_iterator_range( boost::make_reverse_iterator(boost::end(rng)), boost::make_reverse_iterator(boost::begin(rng)) ); } BOOST_FOREACH (int x, ::make_reverse_range(vect)) { } -- Regards, Shunsuke Sogame