dynamic_cast |
upcast and downcast with target type check |
static_cast |
upcast and downcast without target type check |
reinterpret_cast |
all kinds cast without target type check |
boost::static_pointer_cast |
作用范围同static_cast,用于智能指针的类型转换,同时处理引用计数 |
boost::dynamic_pointer_cast |
作用范围同dynamic_cast,用于智能指针的类型转换,同时处理引用计数 |
boost::reinterpret_pointer_cast |
作用范围同reinterpret_cast,用于智能指针的类型转换,同时处理引用计数 |
boost::shared_polymorphic_downcast/boost::polymorphic_pointer_downcast |
作用范围同static_cast,在定义NDEBUG时,使用dynamic做运行时检测,未定义NDEBUG时,同static_cast,用于智能指针的类型转换,同时处理引用计数 |
boost::shared_polymorphic_cast/boost::polymorphic_pointer_cast: |
作用范围同dynamic_cast,类型转换失败时抛出异常,用于智能指针的类型转换,同时处理引用计数 |
boost::polymorphic_cast |
作用范围同dynamic_cast,类型转换失败时抛出异常,用于非智能指针的类型转换 |
boost::polymorphic_downcast |
作用范围同static_cast,未定义NDEBUG时,同static_cast,用于智能指针的类型转换,同时处理引用计数,用于非智能指针的类型转换 |