提问人:Motti 提问时间:5/7/2009 最后编辑:Iulian OnofreiMotti 更新时间:8/18/2021 访问量:21993
WTF WTF 在 WebKit 代码库中表示吗?
WTF does WTF represent in the WebKit code base?
问:
我下载了 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_cast
TO
FROM
reinterpret_cast
我在这里看到的唯一亮点是 Chromium 项目中似乎没有人使用。bitwise_cast
答:
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/SourceDirectory 和 webkit.org/blog/6161/locking-in-webkit(对于 WebKit 源)和 chromium.googlesource.com/chromium/src/+/master/third_party/...(对于 Blink 源)。
5赞
Stan
6/11/2010
#3
这是为了避免严格混叠优化问题:
评论