Dependiendo del lenguaje y del tipo, un valor unión puede ser usado en operaciones como, por ejemplo, asignación o comparación de igualdad, sin necesidad de saber su tipo específico.
Además, puesto que la unión matemática evita los duplicados, si más de un campo puede almacenar un valor común, es imposible decir, a partir del valor, qué campo fue el último en ser escrito.
Por otra parte, C++ no permite a un elemento ser de cualquier tipo que tenga un full fledged constructor/destructor y/o copy constructor, o una copia no-trivial del operador de asignación.
Esta ganancia en espacio, muy útil en algunos casos, implica un gran coste en seguridad: la lógica del programa debe asegurarse de que solo se lee el último elemento en ser escrito por todos los posibles caminos que lleve el programa al ejecutarse.
El lenguaje de programación Pascal permite crear uniones de manera muy similar a la manera en que sea crean las estructuras (cambiando "Estruc" por "Union").