I suggested the name; my inspiration was the boost::polymorphic_downcast function template. I also like the way a name ending with the word cast fits in with the family of static_cast, dynamic_cast, and reinterpret_cast. — Darin