From: Vincent Finn (vincent.finn_at_[hidden])
Date: 2003-10-17 10:21:22


On Fri, 17 Oct 2003 17:37:20 +0300, "Peter Dimov" <pdimov_at_[hidden]>
wrote:

>Vincent Finn wrote:
>> On Thu, 16 Oct 2003 19:08:10 +0200, Martin Wille <mw8329_at_[hidden]>
>> wrote:
>>
>>> 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
>
>The problem is that <typeinfo> and <typeinfo.h> both use _INC_TYPEINFO as an
>include guard, so the first one "wins".
>
>> 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
>
>Yes, this is fixed in VC7+.
>
>If you have a precompiled header, try to #include <typeinfo> before all
>other headers and see if this fixes the problem.

That does the job
the .h version is being included through some 3rd party MFC control.

        Thanks, Vin