WTF WTF 在 WebKit 代码库中表示吗?

WTF does WTF represent in the WebKit code base?

提问人:Motti 提问时间:5/7/2009 最后编辑:Iulian OnofreiMotti 更新时间:8/18/2021 访问量:21993

问:

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

这是否意味着我认为它意味着什么?可能是这样,如果 or 不是 POD,并且 (AFAIK) 不比内置的 C++ 更强大,则此处指定的实现将不会编译。bitwise_castTOFROMreinterpret_cast

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

C++ WebKit

评论

4赞 MSalters 5/7/2009
引用“无保证”部分可能是个好主意。
0赞 Earlz 5/31/2010
@KennyTM请参阅 meta.stackexchange.com/questions/45844/...,了解如何标记此问题
0赞 macetw 6/6/2014
哇,该类不是由“Web 模板框架”描述的。这只是一个方便的缩写。

答:

2赞 Artyom 5/7/2009 #1

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

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

评论

1赞 MSalters 5/7/2009
不确定。如果你的类包含指向成员的指针,它就不是一个 POD,但我认为它仍然可以合并。
92赞 ismail 5/7/2009 #2

它是 Web Template Framework 的缩写,在 WebKit 代码库中提供了常用的函数。

评论

2赞 ismail 1/31/2012
就像C++模板一样,做常见的事情:)
0赞 Victor 1/5/2017
有什么方法可以克隆该库吗?
0赞 adib 3/23/2017
请引用。它是否像 Mustache 或 JSP 那样做模板?
0赞 Timothy Gu 4/28/2020
@adib 不,“模板”实际上是指C++模板,仅此而已。请参阅 trac.webkit.org/wiki/SourceDirectorywebkit.org/blog/6161/locking-in-webkit(对于 WebKit 源)和 chromium.googlesource.com/chromium/src/+/master/third_party/...(对于 Blink 源)。
5赞 Stan 6/11/2010 #3

这是为了避免严格混叠优化问题:

GCC、严格锯齿和通过联合进行转换