Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2003-08-14 09:09:13


Peter Dimov <pdimov_at_[hidden]> wrote in message news:002d01c36263$dc96a390$1d00a8c0_at_pdimov2...
> Fernando Cacciola wrote:
> > David Abrahams <dave_at_[hidden]> wrote in message
> > news:ufzk5uply.fsf_at_boost-consulting.com...
> >> Which compilers are failing and where are the regression report
> >> pages?
> >>
> > Sorry for the delay, I was leaving the office when you posted this....
> >
> > Most problems related to swap ocurr with GCC>3.3 and VC==6.0
> > It appears that this problem ocurrs both with 1.30.0 and the current
> > rc 1.30.2
>
> What's so surprising here? Everything fails exactly as it should.
> 1.30 has
>
> #ifndef __GNUC__
> using std::swap;
> #endif
>
> and hence should fail on every non-broken GCC.
>
>
> HEAD has
>
> #ifndef BOOST_NO_STDC_NAMESPACE
> using std::swap;
> #endif
>
> instead and hence should fail on every BOOST_NO_STDC_NAMESPACE compiler that
> isn't a broken GCC.
>
There's something I don't understand.

1.30.0, as you said, doesn't has the using declaration
at function scope, BUT is has it at namespace scope.
See revision 1.9 or prior.
The idea was that borken GCC don't like it at function
scope but do at namespace scope.

Recently, Jens Maurer changed the guard at function scope
from:

#ifndef __GNUC__
to
#ifndef BOOST_NO_STDC_NAMESPACE

and honestly, I didn't looked much at it as I should.

BOOST_NO_STDC_NAMESPACE is documented to relate to C names,
but swap is a C++ name so I don't think such macro
should be used here.

I don't understand the problem with the original code
(as of revision 1.19), and I don't understand why
1.30.0 fails.
I do understand why HEAD fails, by my 'fix' would be
to revert Jens fix, but if I were right, 1.30.0 wouldn't
fail as it does.

Fernando Cacciola


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk