
I've been doing battle with VC 7.1 and its "'detail' : ambiguous symbol" error messages for a while. The basic problem is that we have a file with, essentially, "using namespace boost; using namespace boost::spirit;" in it. Since VC 7.1 resolves namespace names a bit strangely, these using directives end up being resolved late in the compilation process, so they make lookups of names like "detail" ambiguous. The most recent of these problems shows up here: http://tinyurl.com/a4d6p Using directives from some Graph code that #includes spirit and shared_ptr has the using directives I mentioned above. All should be well, but somehow VC 7.1 is using these directives later on, so shared_ptr's reference to "detail::" becomes ambiguous. I've been whacking these problems by providing full qualification (::boost::detail) where it concerns my libraries, but now that it's hit shared_ptr I think we might need to fix this another way. A few options come to mind: 1) Make me fix the graph library with a bunch of using declarations instead of the blanket "using namespace boost::spirit;" that causes the problem. But, users might still run into this issue. 2) Keep on qualifying "detail" references until it stops causing problems 3) Stop using "detail" and instead use "[lib]_detail" that is different for each lib. Preferences? Doug