Boost logo

Boost Users :

From: Anders Sundman (sundman.anders_at_[hidden])
Date: 2008-05-29 02:34:45


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