Boost logo

Boost Users :

From: Anders Sundman (sundman.anders_at_[hidden])
Date: 2008-05-29 09:18:44


Hi Again!

After doing some more tests I noticed that all three tested versions
of boost (1.34.1, 1.35.0 & trunk) compiles fine, without the leakage
problem, on Visual Studio 2008. It seems to be related to Visual
Studio 2005 some how?

// Anders

On Thu, May 29, 2008 at 8:34 AM, Anders Sundman
<sundman.anders_at_[hidden]> wrote:
> Hi!
>
> The following code compiles fine with boost 1.34.1 (as it should) but
> fails to compile with 1.35.0 and the boost trunk (rev. 45896)
>
> #include "boost/archive/binary_iarchive.hpp"
>
> namespace detail {
> struct fu {};
> }
>
> struct bar : detail::fu {};
>
> Visual studio 2005 generates the following error message:
>
> 1>c:\dev\sandbox\using_scope_test\using_scope_test\test.cpp(7) : error
> C2872: 'detail' : ambiguous symbol
> 1> could be 'detail'
> 1> or 'boost::detail'
>
> It seems to me that the include file is some how leaking the boost
> namespace to it's surrounding?
>
> Explicitly qualifying the line:
>
> struct bar : ::detail::fu {};
>
> works as expected. But I'm also allowed to write:
>
> struct bar : boost::detail::fu {};
>
> which gives the error "'fu' : is not a member of 'boost::detail'" and
> not the expected "'boost' : is not a class or namespace name".
>
>
> Is this a known problem, and if so is there also a known patch?
>
> Best Regards,
> Anders Sundman
>


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