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
这是我想的那个意思吗?可能是这样的,如果 TO
或 FROM
不是 POD,并且(AFAIK)不比构建在 reinterpret_cast
中的 C + + 更强大,那么这里指定的 bitwise_cast
实现将不会编译。
我在这里看到的唯一亮点是似乎没有人在 Chromium 项目中使用 bitwise_cast
。