|
Boost : |
From: Martin Wille (mw8329_at_[hidden])
Date: 2003-10-16 12:08:10
Vincent Finn wrote:
> On Thu, 16 Oct 2003 18:11:55 +0300, "Peter Dimov" <pdimov_at_[hidden]>
> wrote:
>
>
>>Vincent Finn wrote:
>>
>>>Hi,
>>>
>>>I have been using boost::shared_ptr for ages without problems but I
>>>recently added it to an existing project and it won't compile
>>>
>>>I gives the following error
>>>C:\LIBS\BOOST_1_30_0\boost/detail/shared_count.hpp(116) : error C2039:
>>>'type_info' : is not a member of 'std'
>>>
>>>I have compared the project settings to other projects I use it in an
>>>found nothing wrong
>>>
>>>I am on Win2K and using VC6 Sp5
>>>RTTI is switched on in the project
>>>
>>>Has anyone seen this?
>>>Any idea what might be wrong?
>>
>>That's odd. Your <typeinfo> probably declares type_info in the global
>>namespace and doesn't say namespace std { using ::type_info; } afterwards.
>>VC6SP5's <typeinfo> header does have the using directive, though. STLport?
>>Or something else unusual?
>
>
> 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.
Regards,
m
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk