डब्ल्यूटीएफ डब्ल्यूटीएफ है? (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.