Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-07-13 05:49:51

Synge Todo <wistaria_at_[hidden]> 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/, 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

I'll let everyone know when it's checked in.

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at