wtf هو WTF ؟ (في بكت رمز قاعدة)
سؤال
أنا تحميل الكروم's رمز قاعدة وركض عبر 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
ليس جراب وليس (AFAIK) أقوى من C++ بنيت في reinterpret_cast
.
فقط نقطة ضوء أراه هنا هو أن لا أحد يبدو أن استخدام bitwise_cast
في الكروم المشروع.
المحلول
انها قصيرة Web Template Framework ويوفر المهام شائعة الاستخدام في جميع أنحاء بكت تعليمات البرمجة الأساسية.
نصائح أخرى
ذلك هو تجنب صارمة-التعرج الأمثل المشكلة:
دول مجلس التعاون الخليجي الصارم-التعرج و الصب من خلال الاتحاد
ويمكن أن يكون ذلك، وتنفيذ bitwise_cast المحددة هنا ينتج سلوك غير معرف إذا إما إلى أو من ليس POD
اقتباس فقرة>إذا من أو إلى ليست أنواع POD، ستفشل تجميع مع المعيار الحالي C ++ لأنك لن تكون قادرة على وضع لهم في النقابة.