Boost logo

Boost :

From: Vincent Finn (vincent.finn_at_[hidden])
Date: 2003-10-17 06:04:31


On Thu, 16 Oct 2003 19:08:10 +0200, Martin Wille <mw8329_at_[hidden]>
wrote:

>Vincent Finn wrote:
>> On Thu, 16 Oct 2003 18:11:55 +0300, "Peter Dimov" <pdimov_at_[hidden]>
>> wrote:
>>
>>
>> I wrote a reply to this but amn't sure what happened it, using a new
>> news reader :-(
>>
>> I am using the default library (i.e. VC98\Include)
>> One thing I noticed is that when I "Go to definition" in the project
>> that works it takes me to <typeinfo> as expected
>> in the projects that don't work it takes me to <typeinfo.h> which
>> doesn't have the namespace
>>
>> I don't know what the cause of the confusion is though
>> there are no includes for <typeinfo.h> in my code but this is a Com
>> and MFC project so there are a lot of includes lying around
>> Even if it was included I can't see why there would be a problem
>
>The problem is that you are using old style headers
>(iostream.h) together with standard headers (iostream). One
>of them defines/undefines a macro which later will confuse
>other headers, esp the RTTI stuff.

That's why I said I don't include the .h file
if it is included it is done somewhere I can't find

I tried creating clean projects using the VC6 Wizards and none of them
have a problem, so I am stumped

One thing I did notice is that VC7.1 compiles the same code perfectly
which it shouldn't do if it is a problem with my code.
I assume there have been changes between in the libraries in VC6 and
VC7 which stop this from happening

So it would appear to be an interdependency in VC6 libraries but I
can't figure out what is causing the clash or how to fix it

I can, of course, work around it by putting
namespace std { using ::type_info; }
before the include but that seems a bit nasty !

        Vin


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk