डब्ल्यूटीएफ डब्ल्यूटीएफ है? (WebKit कोड आधार में)


91

मैंने क्रोमियम के कोड बेस को डाउनलोड किया और डब्ल्यूटीएफ नामस्थान पर भाग गया ।

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) अधिक में बनाया सी से शक्तिशाली ++ नहीं है reinterpret_cast।

प्रकाश का एकमात्र बिंदु जो मैं यहां देख रहा हूं वह यह है कि कोई भी bitwise_castक्रोमियम परियोजना में उपयोग नहीं करता है ।


4
संभवतः "NO WARRANTIES" भाग को उद्धृत करने का एक अच्छा विचार है।
— MSalters

@KennyTM कृपया इस सवाल का टैग लगाने की चर्चा के लिए meta.stackexchange.com/questions/45844/… देखें
— अर्लज़

वाह, उस वर्ग का वर्णन "वेब टेम्पलेट फ्रेमवर्क" द्वारा नहीं किया गया है। यह सिर्फ एक सुविधाजनक संक्षिप्त नाम है।
— मैक्वाट

जवाबों:


81

यह के लिए कम है डब्ल्यू EB टी emplate एफ ramework और आमतौर पर सभी वेबकिट codebase से अधिक कार्यों के लिए इस्तेमाल किया प्रदान करता है।


2
जैसा कि C ++ टेम्प्लेट आम सामान कर रहा है :)
— ismail

उस पुस्तकालय की क्लोनिंग का कोई तरीका?
— विक्टर

कृपया कृपया। क्या यह टेंपरेचर मूंछों या JSP की तरह करता है?
— अदीब

@adib नहीं, "टेम्पलेट" वास्तव में C ++ टेम्पलेट को संदर्भित करता है और कुछ नहीं। Trac.webkit.org/wiki/SourceDirectory और webkit.org/blog/6161/locking-in-webkit (WebKit स्रोतों के लिए) और क्रोमियम . googlesource.com/chromium/chrc/+/master/third_party/… (ब्लिंक के लिए ) देखें स्रोत)।
— टिमोथी गु


2

ऐसा हो सकता है, यहाँ निर्दिष्ट बिटवाइज़_कास्ट लागू होने से अपरिभाषित व्यवहार उत्पन्न करता है यदि TO या FROM एक POD नहीं है

यदि FROM या TO POD प्रकार नहीं हैं, तो संकलन वर्तमान C ++ मानक के साथ विफल हो जाएगा क्योंकि आप उन्हें संघ में नहीं रख पाएंगे।


1
निश्चित नहीं। यदि आपकी कक्षा में एक पॉइंटर-टू-मेंबर है, तो यह POD नहीं है, लेकिन यह अभी भी एक यूनियन में जा सकता है, मुझे लगता है।
— MSalters
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.