|
Boost : |
From: Frantz Maerten (frantz.maerten_at_[hidden])
Date: 2005-02-24 17:15:33
Hi all,
While using boost::any with pointers, I realized the following
problem for polymorphic classes:
\code
class A {
public:
virtual ~A() {}
} ;
class B: public A {} ;
int main() {
boost::any b(new B) ;
try {
A* a = boost::any_cast<A*>(b) ;
}
catch (const boost::bad_any_cast&) {/*failed*/}
}
\endcode
Of course the following code failes, since rtti information is used for
casting.
I extended the boost::any concept, and incorporated a
boost::any_dynamic_cast (see attachment)
This extension uses boost::is_polymorphic and boost::remove_pointer,
and allows dynamic casting
if possible.
Does anyone need this features, and can it be incorporated (after some
regression tests) into the boost::any library?
Thanks for any comment about it.
--Frantz Maerten
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk