
Hi all, I have found a problem compiling Boost, in libs/serialization/src/basic_text_oprimitive.cpp the usage of boost::iterator::iterator_facade is problematic. I have reduced it to a two line minimal case: #include <boost/archive/iterators/ostream_iterator.hpp> boost::archive::iterators::ostream_iterator<char> it; Trying to compile this with SunCC 5.10 (Sun Studio 12.1) in Solaris I get the following error: "boost/iterator/iterator_facade.hpp", line 779: Error: value is not a member of boost::iterators::detail::is_traversal_at_least<std::output_iterator_tag, boost::iterators::bidirectional_traversal_tag>. "boost/archive/iterators/ostream_iterator.hpp", line 40: Where: While specializing "boost::iterators::iterator_facade<boost::archive::iterators::ostream_iterator<char>, char, std::output_iterator_tag, boost::archive::iterators::ostream_iterator<char>&, int>". "boost/archive/iterators/ostream_iterator.hpp", line 40: Where: Specialized in boost::archive::iterators::ostream_iterator<char>. "fail.cpp", line 2: Where: Specialized in non-template code. I guess it must be some bug in the compiler, because if I try to instantiate directly the template mentioned in the error message it works fine. (i.e. value is indeed a member). #include <boost/iterator/iterator_facade.hpp> const bool value = boost::iterators::detail::is_traversal_at_least< std::output_iterator_tag, boost::iterators::bidirectional_traversal_tag >::value; For reference, this problem was *not* present in Boost 1.55.0. Thanks! PS: I have mentioned both libraries in the subject because I don't know if this is a problem with Boost.Iterator code, or with the usage of that library from Boost.Serialization.