Tôi đã tải xuống cơ sở mã của Chromium và chạy trên không gian tên 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
Điều này có nghĩa là những gì tôi nghĩ nó có nghĩa là? Có thể như vậy, việc bitwise_casttriển khai được chỉ định ở đây sẽ không biên dịch nếu một trong hai TOhoặc FROMkhông phải là POD và không (AFAIK) mạnh hơn C ++ được tích hợp sẵn reinterpret_cast.
Điểm sáng duy nhất tôi thấy ở đây là dường như không ai sử dụng bitwise_casttrong dự án Chromium.