Boost logo

Boost Users :

From: Richard L. Aurbach (rick_at_[hidden])
Date: 2008-07-12 11:43:20


On Jul 12, 2008, at 2:28 AM, boost-users-request_at_[hidden] wrote:
> On Fri, Jul 11, 2008 at 6:06 PM, Igor R <boost.lists_at_[hidden]> wrote:
>> Does it compile if you define BOOST_NO_TYPEID ?
>>
>>> My question is why I need to enable 'rtti' in order to use boost
>>> shared_ptr ?
>>
>> IIRC, get_deleter() function uses typeid(), which is unavailable in
>> your case.
>
> I have added '#define BOOST_NO_TYPEID ' Before I include
> 'shared_ptr.hpp', but i still get the following error:
>
> /usr/include/boost/detail/sp_counted_impl.hpp: In member function
> 'virtual void* boost::detail::sp_counted_impl_pd<P,
> D>::get_deleter(const std::type_info&)':
> /usr/include/boost/detail/sp_counted_impl.hpp:150: error: cannot use
> typeid with -fno-rtti
>
> #define BOOST_NO_TYPEID
> #include <boost/shared_ptr.hpp>
>
> using namespace std;
> using namespace boost;
>
> Can you please tell me if there is a way to use boost smart pointer
> without rtti?
> Thank you.

Actually, it isn't clear to me that you CAN use shared_ptr without
RTTI. The shared_ptr package (both boost and TR1) includes
dynamic_pointer_cast and static_pointer_cast, which are RTTI-related
functions.

Perhaps if you could share with us why it is important to use the -fno-
rtti switch in your work, someone could provide more substantive
suggestions.

Cheers,

Rick Aurbach



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