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


91

我下载了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

这是否意味着我认为的意思?可能是这样,bitwise_cast这里指定的执行将不会编译如果任一TO或者FROM是不是一个POD,而不是(据我所知)比C ++强大的内置reinterpret_cast

我在这里看到的唯一亮点是bitwise_castChromium项目中似乎没有人在使用。


4
引用“无担保”部分可能是一个好主意。
MSalters,2009年

@KennyTM,请参阅meta.stackexchange.com/questions/45844/…,以获取有关如何标记此问题的讨论
Earlz,2010年

哇,“ Web模板框架”没有描述该类。这只是一个方便的缩写。
macetw 2014年

Answers:


81

这对于短W¯¯ EB 牛逼 emplate ˚F ramework,并提供常用的功能都在WebKit的代码库。


2
就像在C ++模板中做常见的事情一样:)
ismail 2012年

有什么办法克隆那个库吗?
维克多

请引用。它像Mustache或JSP一样做模板吗?
adib

@adib不,“模板”实际上是指C ++模板,仅此而已。请参阅trac.webkit.org/wiki/SourceDirectorywebkit.org/blog/6161/locking-in-webkit(适用于WebKit源)和chromium.googlesource.com/chromium/src / + / master / third_party /…(适用于Blink)资源)。
蒂莫西·顾


2

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

如果FROM或TO不是POD类型,则当前的C ++标准将导致编译失败,因为您将无法将它们合并。


1
不确定。我认为,如果您的类包含指向成员的指针,则它不是POD,但仍然可以合并。
MSalters,2009年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.