Resultados da pesquisa a pedido "unions"

5 a resposta

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?

5 a resposta

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?

1 a resposta

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 ...

1 a resposta

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 ...

6 a resposta

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, ...

3 a resposta

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?

5 a resposta

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, ...

4 a resposta

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 ...

2 a resposta

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 ...

2 a resposta

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] ...