Tag: UNIONS
Estoy escribiendo una clase variante (sí, sé sobre std::variant, es solo por diversión), y esto es lo que tengo hasta ahora template<typename first,=”” typename…=”” rest=””> union Variant<first, rest…=””> { template<size_t n=””> using Types = typename Type<n, first,=”” rest…=””>::Type; First first; Variant<rest…> rest; uint16_t activeIndex; template<size_t n=””> Types<n>& get() { } . . . Read more
Disculpe por el título poco descriptivo: no estaba seguro de cómo plantear esto en una sola línea. Tengo una estructura de datos en la que tengo dos valores: uno de 14 bits y otro de 10 bits. Quiero poder acceder a ellos como bytes en una unión. Tengo lo siguiente: . . . Read more
typedef union { volatile struct { //Inicializar UINT64 ARG1 : 1; //800H UINT64 ARG2 : 1; //800H UINT64 ARG3 : 1; //00H UINT64 ARG4 : 1; //00H<br> UINT64 ARG5 : 2; //00H<br> UINT64 ARG6 : 1; //00H<br> UINT64 ARG7 : 1; //00H<br> UINT64 ARG8 : 8; //00H<br> UINT64 ARG9 : . . . Read more
Intento declarar la variable de unión char name[20] = “Arun” Aparece un mensaje de error como [Error] tipos incompatibles en la asignación de ‘const char [5]’ a ‘char [20]’ No sé qué puedo hacer ahora En el último mes no logro entender los detalles, por favor ayúdeme a descubrirlos.
Hasta donde yo sé, el comportamiento indefinido debería ser un error de compilación durante la evaluación constante. Pero si tomamos un ejemplo de comportamiento indefinido del estándar C++20 en class.union#6.3 con una pequeña modificación para activar la evaluación constante: struct X { const int a; int b; }; union Y . . . Read more