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