用法:
1 不同类型之间进行转换时,尽量使用numeric_cast,他会检查数据的范围,如果有问题会抛出异常
2 对浮点数类型,不会抛出异常,会产生截断
3 原则
在无符号与有符号类型间进行赋值或比较时
在不同大小的整数类型间进行赋值或比较时
从一个函数返回类型向一个数值变量赋值,为了预防该函数未来的变化
总结,numeric_cast非常有用,尽量使用,他会在转换后的类型如果无法表示转换前的数值的时候会抛出异常,如 当 int i = numeric_cast<int>(0xFFFFFFFF)时,或 boost::numeric_cast<unsigned int>(-1);都会抛出异常;