static const extended_type_info * get_derived_extended_type_info(const T & t){ // note: this implementation - based on usage of typeid (rtti) // only works if the class has at least one virtual function. // BOOST_STATIC_WARNING( // static_cast<bool>(is_polymorphic::value) // ); detail::extended_type_info_typeid_arg etia(typeid(t)); return extended_type_info::find(& etia); }
BOOST_SERIALIZATION_DECL const extended_type_info * extended_type_info_typeid_0::get_extended_type_info( const std::type_info & ti ) const { typeid_system::extended_type_info_typeid_arg etia(ti); const tkmap & t = singleton<tkmap>::get_const_instance(); const tkmap::const_iterator it = t.find(& etia); if(t.end() == it) return NULL; return *(it); }