摘要:
设T和U是任意的两个类型,用什么方法判定类型T可以自动转换到类型U呢?
答案是:借助sizeof运算符。
其实,sizeof的实力相当强大。不论是什么类型,也不论是多么复杂的
表达式,只要把它交给sizeof,结果都将返回该表达式的值的类型长度。
也就是说,sizeof的背后必须暗藏一整套推导机制,它可以推导出表达式
值的类型。最终,sizeof并不关心整个表达式,而只是返回结果的长度。
我们的基本思想是,使用sizeof和函数重载机制。
声明两个重载函数,一个函数的形参接受可以转换为U的类型;另一个函数的
形参接受任何其他类型。使用类型T的临时变量来调用重载函数。如果接受U的函数
被调用,则可断定T是能够转换为U的。如果接受任何其他类型作参数的函数被调用
,那么T不能转换为U。
阅读全文
posted @ 2005-01-24 23:56 andrew 阅读(1540) 评论(0) 推荐(1) 编辑