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 であり、 reinterpret_cast
に組み込まれているC ++よりも強力ではありません。
私がここで目にする唯一のポイントは、Chromiumプロジェクトで bitwise_cast
を使用している人はいないように見えることです。
解決
W eb T エンプレート F ラムワークの略で、WebKitコードベース全体で一般的に使用される機能を提供します。
他のヒント
ストリクトエイリアスの最適化の問題を回避するためです:
その可能性があります。TOまたはFROMがPODでない場合、ここで指定されたbitwise_cast実装は未定義の動作をもたらします
FROMまたはTOがPODタイプでない場合、現在のC ++標準でコンパイルが失敗します 統合することができないからです。
所属していません StackOverflow