¿Las uniones tienen una estructura de control para probar qué miembro está actualmente en uso (o si tiene alguno)? Estoy preguntando esto porque nunca es bueno tener un comportamiento indefinido en tu programa.Unión probada para miembro actual en uso
8
A
Respuesta
12
No, tal mecanismo no existe en el mercado. Tendrá que encargarse de eso usted mismo. El enfoque habitual es envolver el union
en un struct
:
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
Así que tiene MyUnion x;
y x.whichMember
le indica qué campo de la x.actualUnion
está en uso (hay que implementar la funcionalidad sin embargo).
Cuestiones relacionadas
- 1. ¿Disposición de memoria de unión de miembro de diferente tamaño?
- 2. ¿Cuál es el uso de un objeto de unión constante?
- 3. Unión en C++ son viables
- 4. Uso de sentencias CASE en IZQUIERDA UNIÓN EXTERNA en SQL
- 5. ¿Cuál es el equivalente Enum.GetName para el miembro de la unión F #?
- 6. unión inicialización
- 7. Uso de memoria actual en Lisp
- 8. ¿Cuál es la sintaxis para forzar el uso de un índice para una unión en MySQL?
- 9. std :: uso for_each en función miembro con dos argumentos
- 10. Uso no válido de 'esto' en la función no miembro
- 11. ¿Qué es una unión?
- 12. Uso de una expresión lambda de acceso de miembro para parametrizar un predicado LINQ to SQL
- 13. decltype para funciones miembro
- 14. ¿Qué significa "solicitar miembro '*******' en algo que no es una estructura o unión"?
- 15. ¿Cómo acceder a un miembro de la estructura dentro de una unión en C?
- 16. iOS 4 - Uso de bloques como miembro de una clase
- 17. Cómo inyectar el simulacro de EasyMock en el campo privado de la clase probada
- 18. ¿Cola libre de C/C++ bloqueada y probada?
- 19. Funciones de miembro no miembro frente a miembro en Python
- 20. MySql SELECT unión para diferentes columnas?
- 21. MySQL - El uso de la unión con LÍMITE
- 22. SQL insertar en el uso de la Unión debe agregar sólo valores distintos
- 23. Enum vs no miembros discriminado unión
- 24. FIltering en la unión?
- 25. uso inválido del miembro de datos no estáticos
- 26. Impresión F # unión discriminada
- 27. C++: Uso de punteros de función con funciones de miembro
- 28. definición múltiple para miembro estático?
- 29. ¿Cómo uso JPQL para eliminar entradas de una tabla de unión?
- 30. Uso de memoria del proceso actual en C
+1: Este tipo de estructura a menudo se denomina "unión discriminada" o "unión etiquetada". –
Sí, pensé en un enfoque similar, pero como prefiero las construcciones idiomáticas a las creadas por uno mismo, solo tenía que saber si existía alguna. Gracias por la rápida respuesta. –