We can't go back, as the past disappeared.
esv::max_real_t is used to get the lowest maximum type of two real types.
For example, it gets esv::ix64 from esv::u32 and esv::ix16; gets esv::ix32 from esv::ix32 and esv::u8.
However, esv::max_real_t gets esv::overflow_type, if the converter have a chance to make overflow values. Such as it gets esv::overflow_type from esv::u64 and esv::i32.
using target_type = esv::max_real_t<real_type1, real_type2>;