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<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.
"boost/archive/iterators/ostream_iterator.hpp", line 40: Where: While
specializing
"boost::iterators::iterator_facade".
"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
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.