? libs/filesystem/A.diff ? libs/filesystem/example/bar ? libs/filesystem/example/dir_it.cpp ? libs/filesystem/example/my_directory ? libs/filesystem/test/fstream_test_bfoo ? libs/filesystem/test/fstream_test_cfoo ? libs/filesystem/test/fstream_test_wfoo ? libs/filesystem/test/xx Index: boost/filesystem/operations.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/filesystem/operations.hpp,v retrieving revision 1.19 diff -u -r1.19 operations.hpp --- boost/filesystem/operations.hpp 20 Mar 2004 18:24:20 -0000 1.19 +++ boost/filesystem/operations.hpp 11 May 2004 06:37:38 -0000 @@ -100,15 +100,19 @@ path, boost::single_pass_traversal_tag > { + typedef iterator_facade base; public: directory_iterator(){} // creates the "end" iterator explicit directory_iterator( const path & p ) { detail::dir_itr_init( m_imp, p ); } -/* -The *r++ requirement doesn't appear to apply to the new single_pass_traversal category -Thus I'm leaving the proxy out pending confirmation from the N1477 authors -struct path_proxy // allows *r++ to work, as required by 24.1.1 + /* The proxy allows allows *r++ to work, as required by 24.1.1 + The current requirements for new single pass traversal iterator do + not allow returning proxy from operator++, but Dave says prohibiting + proxy was not indented, so eventually this will be fixed. + */ + struct path_proxy { path pv; explicit path_proxy( const path & p ) : pv(p) {} @@ -117,11 +121,13 @@ path_proxy operator++(int) { - path_proxy pp( m_deref() ); + path_proxy pp( **this ); ++*this; return pp; } -*/ + // Also bring base (preincrement) operator here + using base::operator++; + private: detail::dir_itr_imp_ptr m_imp; Index: libs/filesystem/test/operations_test.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/filesystem/test/operations_test.cpp,v retrieving revision 1.21 diff -u -r1.21 operations_test.cpp --- libs/filesystem/test/operations_test.cpp 21 Mar 2004 20:32:20 -0000 1.21 +++ libs/filesystem/test/operations_test.cpp 11 May 2004 06:37:38 -0000 @@ -229,14 +229,14 @@ { // Note result for single_pass_traversal requirements is // different than for input_iterator requirements - BOOST_TEST( (*dir_itr++).leaf() == "d2" ); + BOOST_TEST( (*dir_itr++).leaf() == "d1" ); BOOST_TEST( dir_itr->leaf() == "d2" ); } else { // Note result for single_pass_traversal requirements is // different than for input_iterator requirements - BOOST_TEST( (*dir_itr++).leaf() == "d1" ); + BOOST_TEST( (*dir_itr++).leaf() == "d2" ); BOOST_TEST( dir_itr->leaf() == "d1" ); } }