Resultados da pesquisa a pedido "unions"
Acesso ao membro da união inativo e comportamento indefinido?
Tive a impressão de que acessar umunion membro @ que não seja o último conjunto é UB, mas não consigo encontrar uma referência sólida (além de respostas afirmando que é UB, mas sem nenhum suporte do padrão Então, é um comportamento indefinido?
Union em c ++ são viáveis
Pode uma união em C ++ ter uma função de membro? Como existe a união com membros de dados e funções de membro se um objeto é criado? Se suponho que sim, então eles são possíveis em qualquer lugar. Se sim, então onde?
União de tipos compatíveis com layout
Veja este código: struct A { short s; int i; }; struct B { short s; int i; }; union U { A a; B b; }; int fn() { U u; u.a.i = 1; return u.b.i; } É garantido quefn() retorna1? Nota: esta é uma pergunta de acompanhamento ...
Que membro do sindicato se torna ativo após a colocação de novos
Em relação a este código: #include <string> int main() { union u { u() { i = 0; } ~u() {} int i; std::string s1; std::string s2; } u; new (&u) std::string{}; } [intro.object] / 2 [https://timsong-cpp.github.io/cppwp/n4659/intro.object#2] diz ...
cessar membros de estrutura como se fossem uma única matri
Tenho duas estruturas, com valores que devem calcular uma média ponderada, como esta versão simplificada: typedef struct { int v_move, v_read, v_suck, v_flush, v_nop, v_call; } values; typedef struct { int qtt_move, qtt_read, qtt_suck, ...
O que são propostas Uniões sem restrições no C ++ 11?
Eu recolhounrestricted unions como uma das funcionalidades apresentadas no C ++ 11. Alguém pode explicar a semântica por trás disso e as vantagens que ela oferece?
stá usando uma união no lugar de um elenco bem definid
Tive uma discussão esta manhã com um colega sobre a correção de um "truque de codificação" para detectar endiannes O truque foi: bool is_big_endian() { union { int i; char c[sizeof(int)]; } foo; foo.i = 1; return (foo.c[0] == 1); }Para mim, ...
union initialisation
Estou tentando inicializar globalmente uma união como no exemplo a seguir: #include <cstdio> typedef union { char t[4]; int i; } a; enum { w = 5000, x, y, z }; a temp = {w}; int main() { printf("%d %d %d %d ...
Layout da memória da união de membro de tamanho diferente?
typedef union epoll_data { void *ptr; int fd; __uint32_t u32; __uint64_t u64; } epoll_data_t;Aquiint e__uint32_t são 4 bytes, enquanto os outros são 8 byte Quando definimosfd para umint, está nos primeiros 4 bytes ou nos últimos 4 bytes ou ...
Union hack para teste endian e troca de bytes
Para uma união, escrever para um membro e ler de outro membro (exceto para matriz de caracteres) é U //snippet 1(testing for endianess): union { int i; char c[sizeof(int)]; } x; x.i = 1; // writing to i if(x.c[0] == 1) // reading from c[0] ...