On Fri, Jul 11, 2008 at 6:06 PM, Igor R <boost.lists@gmail.com> 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.