
Hi there, I have a strange compiler effect with Microsoft Visual Studio.NET 2003 and boost 1.33.1 in a project that uses bind and regex. All Symbols defined in an unnamed namespace are part of the namespace boost::re_detail::'anonymous-namespace'. The effect occurres when I use precompiled headers and bind.hpp is included before regex.hpp. This is my stdafx.h which is used to generate the precompiled header: #pragma once #include <boost/bind.hpp> #include <boost/regex.hpp> This is the main source file: #include "stdafx.h" #include "boost/current_function.hpp" namespace { void foo( void ) { printf( "%s\n", BOOST_CURRENT_FUNCTION ); } } int main( int argc, char * argv[] ) { foo(); return 1; } The program generates this output: void __cdecl boost::re_detail::`anonymous-namespace'::foo(void) instead of the expected output: void __cdecl `anonymous-namespace'::foo(void) When I change the include order in stdafx.h so that regex.hpp is included before bind.hpp the output is as expected. Has someone else came across such a problem? Is it a compiler bug? Regards, Stefan