wtf是WTF? (在WebKit代码库中)

时间:2009-05-07 11:40:58

标签: c++ webkit chromium

我下载了Chromium的代码库,并浏览了WTF namespace

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

这是否意味着我认为这意味着什么?可能是这样,如果bitwise_castTO不是POD而不是(AFAIK)比{C}内置的C ++更强大,则此处指定的FROM实现将无法编译{1}}。

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

3 个答案:

答案 0 :(得分:78)

W eb T 强制 F ramework的缩写,并在整个WebKit代码库中提供常用功能。

答案 1 :(得分:5)

避免严格别名优化问题:

gcc, strict-aliasing, and casting through a union

答案 2 :(得分:2)

  

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

如果FROM或TO不是POD类型,则编译将失败并使用当前的C ++标准 因为你无法将它们联合起来。