Andrew's Blog

Make things as simple as possible, but no simpler -- Albert Einstein

导航

2005年1月24日

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

posted @ 2005-01-24 23:56 andrew 阅读(1538) 评论(0) 推荐(1) 编辑