|
Boost : |
From: JOAQUIN M. LOPEZ MUÑOZ (joaquin_at_[hidden])
Date: 2008-07-10 17:35:50
Hello,
Recent updates to the trunk version of Boost.Test have resulted in a
massive number of regressions for Sun 57 and 5.8, as shown for instance
in:
http://tinyurl.com/5lm7ha
http://tinyurl.com/66qcze
The error message is
"../boost/test/utils/iterator/input_iterator_facade.hpp", line 56:
Error: Multiple declaration for input_iterator_facade.
After examining the updates to Boost.Test in the last days I think
I found the change that's causing the regressions:
http://svn.boost.org/trac/boost/changeset/47170/trunk/boost/test
The change in line 26 of boost/test/impl/unit_test_main.ipp causes
the header <boost/test/utils/iterator/token_iterator.hpp> to be
included where previously that was not the case. This in turns
includes <boost/test/utils/iterator/input_iterator_facade.hpp>, which
contains the following problematic code (for Sun 5.7-8) around line 25:
#if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
public:
#else
template <class I, class V, class R, class TC> friend class input_iterator_facade;
#endif
This perfectly correct friend declaration is not processed properly
by Sun 5.7 and 5.8 hence the error.
May I ask that the problem be fixed by applying either one of the following?
1. Add a workaround for Sun 5.7-8 at line 35 of
boost/test/utils/iterator/input_iterator_facade.hpp
2. Add a !workaround for Sun 5.7-8 at line 26 of
boost/test/impl/unit_test_main.ipp
Thank you!
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk