
Hello, I'm trying to use boost::any to store a group of types. For value types everything works as expected. The problem is that i need to store some polymorphic types also. The following code explains what i'm trying to accomplish. #include <boost/any.hpp> class A {}; //base calss class B: public A {}; // derived class int main() { B *b = new B(); //create derived class boost::any n(b); // place inside boost::any /* other part of code where i only know n contains a pointer to a class derived from A this will throw bad_any_cast: typeid(A*) != typeid (B*) */ A* a = boost::any_cast<A*>(n); } Is there any way of making boost::any_cast work work ok with "convertible" types? Or is there a way of storing different types of objects and having the possibility of retrieving them as compatible objects ? I've looked into any.hpp and found that it uses a typeid() equality test to see if the cast can be made. Can't there be a is_convertible test insted , at least for the case when is holding pointer to objects? Iulian -- Blessed is the man who, having nothing to say, abstains from giving wordy evidence of the fact. -- George Eliot