
Douglas Gregor wrote:
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:
That's the problem two-phase lookup was designed to solve...
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.
As much as I hate it, (2) seems the only viable option.