我下载了Chromium的代码库并运行了WTF命名空间.
namespace WTF { /* * C++'s idea of a reinterpret_cast lacks sufficient cojones. */ templateTO 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
这是否意味着我的意思?可能是这样,bitwise_cast
如果POD中的任何一个TO
或FROM
不是POD并且不是(AFAIK)比内置的C++更强大,那么这里指定的实现将不会编译reinterpret_cast
.
我在这里看到的唯一亮点就是没有人似乎bitwise_cast
在Chromium项目中使用.
它是W eb T emplate F ramework的简称,它提供了遍布WebKit代码库的常用功能.
这是为了避免严格别名优化问题:
gcc,严格别名,并通过联合进行转换