سؤال

أنا تحميل الكروم'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 ++ لأنك لن تكون قادرة على وضع لهم في النقابة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top