头文件
“boost/cast.hpp”
reinterpret_cast
从指针类型到一个足够大的整数类型
从整数类型或者枚举类型到指针类型
从一个指向函数的指针到另一个不同类型的指向函数的指针
从一个指向对象的指针到另一个不同类型的指向对象的指针
从一个指向类函数成员的指针到另一个指向不同类型的函数成员的指针
从一个指向类数据成员的指针到另一个指向不同类型的数据成员的指针
polymorphic_cast
当对引用类型使用dynamic_cast时,如果转换失败(空的引用)则抛出一个bad::cast类型的异常。
当函数dynamic_cast转化指针类型,转换失败返回空指针
polymorphic_cast转换指针类型,转换失败抛出异常
如果判断类型安全,则选择dynamic_ptr
polymorphic_downcast
dynamic_cast的函数效率比较低,static_cast函数比较快,却存在向下转型危险,要提升速度和安全性,使用polymorphic_downcast,他采用dynamic_cast的转型测试,使用static_cast函数执行转换操作。
numeric_cast转型函数
通过测试是否保持值的范围来确保转换的有效性,当范围超出转换的范围则抛出异常