Ich habe Chromium Code-Basis heruntergeladen und lief über die WTF namespace.wtf ist WTF? (in WebKit code base)
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
Bedeutet das, was ich denke, es bedeutet? Könnte so sein, die hier angegebene bitwise_cast
Implementierung wird nicht kompiliert, wenn entweder TO
oder FROM
kein POD ist und nicht (AFAIK) leistungsfähiger als C++ in reinterpret_cast
gebaut ist.
Der einzige Punkt des Lichts, den ich hier sehe, ist, dass niemand scheint, bitwise_cast
im Chromium-Projekt zu verwenden.
Wahrscheinlich eine gute Idee, die „KEINE GARANTIE“ -Teil zu zitieren. – MSalters
@KennyTM siehe http://meta.stackexchange.com/questions/45844/is-the-tag-wtf-acceptable für eine Diskussion darüber, wie man diese Frage markiert – Earlz
Wow, diese Klasse wird nicht von "Web Template Framework" beschrieben . " Es ist nur eine bequeme Abkürzung. – macetw