WTF это WTF? (в базе кода WebKit)

Я скачал базу кода Chromium и наткнулся на пространство имен 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 не является POD и не является (AFAIK) более мощным, чем встроенный в C ++ reinterpret_cast.

Единственная точка зрения, которую я вижу здесь, это то, что никто не использует bitwise_cast в проекте Chromium.

84 голоса | спросил Motti 7 Maypm09 2009, 15:40:58

3 ответа


0

Это сокращение от W eb T emplate F , а также предоставляет часто используемые функции по всей базе кода WebKit.

ответил ismail 7 Maypm09 2009, 16:00:42
0

Следует избегать проблемы оптимизации со строгим псевдонимом:

gcc, строгие псевдонимы и приведение через объединение

ответил Stan 10 J0000006Europe/Moscow 2010, 21:24:57
0
  

Может быть, указанная здесь реализация bitwise_cast дает неопределенное поведение, если TO или FROM не являются POD

Если FROM или TO не являются POD-типами, компиляция завершится с текущим стандартом C ++ потому что вы не сможете соединить их.

ответил Artyom 7 Maypm09 2009, 15:56:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132