Я просматривал код CodeProject и набрал следующий код для кастования С++.
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;
}
Почему бросок реализован выше. Почему мы не можем просто сделать ручную трансляцию. Может ли кто-нибудь привести пример того, когда нормальный бросок не будет работать?