Я завантажив базу коду 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
Чи означає це те, що, на мою думку, означає? Може бути так, bitwise_cast
реалізація, зазначена тут, не буде компілюватися, якщо TO
або FROM
не є POD, і не є (AFAIK) потужнішою, ніж вбудований C ++ reinterpret_cast
.
Єдина точка світла, яку я тут бачу, - це, здається, ніхто не використовує bitwise_cast
у проекті Chromium.