Boost logo

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