我正在浏览 CodeProject 中的一些代码,并遇到了以下用于 C++ 转换的代码。
template <class OutputClass, class InputClass>
union horrible_union{
OutputClass out;
InputClass in;
};
template <class OutputClass, class InputClass>
inline OutputClass horrible_cast(const InputClass input){
horrible_union<OutputClass, InputClass> u;
u.in = input;
return u.out;
}
为什么演员表以上述方式实施。为什么我们不能只进行手动转换。有人可以举一个普通演员何时不起作用的例子吗?