ฉันดาวน์โหลดโครเมียมฐานรหัส 's และวิ่งข้ามnamespace 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และไม่ (AFAIK) มีประสิทธิภาพมากกว่า C ++ ในreinterpret_cast
ตัว
จุดเดียวของแสงที่ฉันเห็นคือดูเหมือนว่าไม่มีใครใช้bitwise_cast
ในโครงการ Chromium