|
Boost Users : |
Subject: [Boost-users] [any] Is it possible to support polymorphism in boost::any?
From: Tang Jiang Jun (tangjiangjun_at_[hidden])
Date: 2010-09-06 10:27:56
Hello,
It seems that boost::any does not support polymorphism in the following
sample.
class A {};
class B : public A {};
void foo( boost::any& _any )
{
try
{
A* p = any_cast< A* >( _any ); <-- Only succeed when _any contain a pointer
to a object that is exactly class A, but not any object that
is descendant of class A, like B.
do_some_thing( p );
}
catch( const bad_any_cast& )
{
}
}
void goo()
{
A* pa = new B;
boost::any a = pa;
foo( a );
}
Is it possible to make it support this polymorphism usage? Because
boost::any is a type-safe replacement of void*, I hope that boost::any has
the same polymorphic behavior as void*.
Regards,
Tang Jiang Jun
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