Tôi đã tải xuống cơ sở mã của Chromium và chạy trên WTF namespace.wtf là WTF? (trong cơ sở mã WebKit)
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à ý tôi nghĩa là gì? Có thể như vậy, việc triển khai bitwise_cast
được chỉ định ở đây sẽ không biên dịch nếu TO
hoặc FROM
không phải là POD và không (AFAIK) mạnh hơn C++ được xây dựng trong reinterpret_cast
.
Điểm duy nhất của ánh sáng tôi thấy ở đây là không ai có vẻ đang sử dụng bitwise_cast
trong dự án Chromium.
lẽ là một ý tưởng tốt để trích dẫn "KHÔNG BẢO ĐẢM" phần. – MSalters
@KennyTM vui lòng xem http://meta.stackexchange.com/questions/45844/is-the-tag-wtf-acceptable để thảo luận về cách gắn thẻ câu hỏi này – Earlz
Ồ, lớp học đó không được mô tả bởi "Khuôn khổ mẫu web . " Nó chỉ là một từ viết tắt thuận tiện. – macetw