J'ai téléchargé la base de code de Chromium et j'ai parcouru l' espace de noms 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
Est-ce que cela signifie ce que je pense que cela signifie? Cela pourrait être le cas, l' bitwise_castimplémentation spécifiée ici ne se compilera pas si l'un TOou l' autre FROMn'est pas un POD et n'est pas (AFAIK) plus puissant que le C ++ intégré reinterpret_cast.
Le seul point de lumière que je vois ici est que personne ne semble utiliser bitwise_castdans le projet Chromium.