template inline Out union_cast(In in) { union union_caster { In in; Out out; }; return union_caster { in }.out; }