跆拳道是跆拳道? (在WebKit代码库中)

我下载了Chromium的代码库并运行了WTF命名空间 。

namespace WTF { /* * C++'s idea of a reinterpret_cast lacks sufficient cojones. */ template<typename TO, typename FROM> TO bitwise_cast(FROM in) { COMPILE_ASSERT(sizeof(TO) == sizeof(FROM), WTF_wtf_reinterpret_cast_sizeof_types_is_equal); union { FROM from; TO to; } u; u.from = in; return u.to; } } // namespace WTF 

这是否意味着我认为的意思? 可能是这样,如果TOFROM不是POD ,并且不是(AFAIK)比reinterpret_cast内置的C ++更强大的话,那么这里指定的bitwise_cast实现将不会被编译。

我在这里看到的唯一亮点就是没有人在Chromium项目中使用bitwise_cast

它是一个简单的Web模板框架,提供了遍布WebKit代码库的常用function。

这是为了避免严格的锯齿优化问题:

海合会,严格的别名,并通过工会铸造

可能是这样,如果TO或FROM不是POD,则在此处指定的bitwise_cast实现会产生未定义的行为

如果FROM或TO不是PODtypes,那么编译将会失败,因为你不能将它们放在一起。