|
Boost Users : |
From: John Maddock (john_at_[hidden])
Date: 2004-10-05 05:02:12
> I try to compile some older C++ Code with your RegEx class and got in some
> source code problems with some ambiguity I believe between the std and the
> global namespace. I followed the include hierarchie starting from
> "boost/regex.h" down to "boost\config\stdlib\dinkumware.hpp" and here was
> my
> first problem, why this stdlib implementation was selected, I don't think,
> that this is the normal implementation for "VC++ 6.0 SP6" what I am
> using!?
Yes it is, Dinkumware supply the std lib that MS ship with their compiler.
> The errors I got are located in some windows system header and look like
> this only in one source file:
> :
> d:\programme\microsoft visual studio\vc98\include\objidl.h(9901) : error
> C2668: 'memset' : ambiguous call to overloaded function
> d:\programme\microsoft visual studio\vc98\include\objbase.h(435) : error
> C2668: 'memcmp' : ambiguous call to overloaded function
> d:\programme\microsoft visual studio\vc98\include\objbase.h(459) : error
> C2668: 'memcmp' : ambiguous call to overloaded function
> Error executing cl.exe.
>
> Any idea what kind of define can cause this problem? I visit every
> included
> headerfile and look also in the expanded preprocessor code (*.i file) and
> didn't see exactly what happend, so have somebody an idea?
Yes, that occurs if you have a
using namespace std;
statement in your code, and you are using Microsoft Visual C++ 6 (it's
actually a compiler bug).
Removing (or possibly moving until after all your includes, or just
re-ordering your includes) the using statement will fix the issue.
John.
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