Frage

Ich heruntergeladen Chromium 's Code-Basis und lief über den WTF Namespace .

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

Heißt das, was ich denke, es bedeutet? Könnte so sein, spezifiziert die bitwise_cast Implementierung hier wird nicht kompiliert, wenn entweder TO oder FROM kein href="http://en.wikipedia.org/wiki/Plain_Old_Data_Structures" rel="noreferrer"> POD reinterpret_cast.

Der einzige Lichtpunkt ich hier sehe, ist die niemand scheint bitwise_cast im Chromium-Projekt zu werden.

War es hilfreich?

Lösung

Es ist die Abkürzung für W eb T emplate F AHMT und häufig verwendete Funktionen auf der ganzen WebKit Code-Basis zur Verfügung stellt.

Andere Tipps

  

Könnte so sein, die bitwise_cast Implementierung angegeben hier ergibt undefiniertes Verhalten, wenn entweder zu oder von nicht POD ist

Wenn von oder zu nicht POD-Typ, würde die Zusammenstellung mit aktuellem C ++ Standard scheitern weil man würde sich nicht in der Vereinigung der Lage sein, setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top