如果你使用的编译器缺乏对新的类型转换方式的支持,你可以使用传统的类型转换方法代替转换语法:
#define static_cast(TYPE,EXPR) ((TYPE)(EXPR))
#define const_cast(TYPE_EXPR) ((TYPE)(EXPR))
#define reinterpret_cast (TYPE,EXPR) ((TYPE)(EXPR))
你可以象这样使用使用:
double result =static_cast(double,fistNumber)/secondNumber;
update(const_cast(SpecialWidget*,&sw));
funcPtrArray[0]=reinterpret_cast(FuncPtr,&doSomething);
并且,使用新类型转换符的程序更容易被解析,它允许编译器检测出原来不能发现的错误。
使用新类型转换符的程序更容易被解析