Можете ли вы предложить хотя бы один сценарий, где есть существенная разница между
union {
T var_1;
U var_2;
}
и
var_2 = reinterpret_cast<U> (var_1)
?
Чем больше я об этом думаю, тем больше они кажутся мне одинаковыми, по крайней мере с практической точки зрения.
Единственное различие, которое я обнаружил, заключается в том, что, хотя размер объединения большой, как самый большой тип данных с точки зрения размера, reinterpret_cast, как описано в этом сообщении, может привести к усечению, поэтому простой старый союз C-стиля еще более безопасен чем новое С++-литье.
Можете ли вы наметить различия между этими 2?