
Christopher Lux wrote:
Hi, we discovered a compiler bug using Visual C++ 8.0 (SP1). This bug makes boost namespace items visible in the global namespace and so makes boost libraries conflict with other libraries. The following example [1] displays how this bug can make namespace items public. When moving the exception class definition outside the namespace everything works as expected.
We encountered this problem when using boost::integer in combination with boost::serialization. After including the file shared_count_132.hpp all boost::integer types are public and conflict with other libraries. This leads to the problem shown in the example [0]. The uint32_t type is publicly visible.
To our knowledge this bug is present in Visual C++ 8.0 (SP1). Visual C++ 9.0 does not show this bug anymore.
We found this last week, I posed it to the list and filed a ticket: http://svn.boost.org/trac/boost/ticket/1773 We found it in conjunction with IntelTBB, rather than boost::integer though. Robert has fixed it though, it looks like. (Good work!) Cheers /Marcus