
Synge Todo <wistaria@comp-phys.org> writes:
Unfortunately, with the new iterator_facade implementation, filesystem/src/path_posix_windows.cpp" can not compile on Compaq Tru64 (cxx).
cxx: Error: /usr/lib/cmplrs/cxx/V6.5-034/include/cxx/algorithm.cc, line 2582: no operator "<" matches these operands operand types are: const boost::detail::postfix_increment_proxy<boost::filesystem: :path::iterator> < const boost::detail::postfix_increment_proxy<boost::filesystem: :path::iterator> detected during instantiation of "bool std::lexicographical_compare(InputIterator1, InputIterator1, InputIterator2, InputIterator2) [with InputIterator1=boost::filesystem::path::iterator, InputIterator2=boost::filesystem::path::iterator]" if (*first2++ < *first1++) return false; --------------------^ cxx: Info: 1 error detected in the compilation of "XXX/src/boost/libs/filesystem/src/path_posix_windows.cpp".
Do you have any idea to fix this problem??
Yeah :( It appears that the old input iterator requirements require that *r++ returns value_type instead of a proxy. However, *r++ must be a proxy if the iterator is writable. Since there's no way to detect iterator writability reliably, I'm going to have to make *r++ return value_type whenever the specified iterator category is strictly std::input_iterator_tag. I'll let everyone know when it's checked in. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com