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_cast
implémentation spécifiée ici ne se compilera pas si l'un TO
ou l' autre FROM
n'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_cast
dans le projet Chromium.