|
Boost Users : |
Subject: [Boost-users] [Boost.Serialization][Boost.Iterators] Problem with Boost 1.59.0 in Solaris with SunCC
From: dariomt_at_[hidden]
Date: 2015-12-29 04:14:33
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.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net