boost::polymorphic_upcast suggestion
27 Jun
2002
27 Jun
'02
10:19 a.m.
Hi, I would like to propose, in the spirit of Bjarne Stroustrup book, an upcast (where target inherits source). template <class Target, class Source> inline Target polymorphic_upcast(Source* x BOOST_EXPLICIT_DEFAULT_TARGET) { typedef unsigned int uint; uint offset = reinterpret_cast<uint>( static_cast<Source*>( reinterpret_cast<Target>(1) ) ) - 1; Target res = reinterpret_cast<Target>( reinterpret_cast<uint>( x ) - offset ); assert( res == dynamic_cast<Target>(x) ); return res; } It would be faster to use the polymorphic_upcast, since it doesn't use dynamic_cast in NDEBUG. Regards, Jean Llorca.
8121
Age (days ago)
8121
Last active (days ago)
0 comments
1 participants
participants (1)
-
Jean Llorca