Resultados da pesquisa a pedido "strict-aliasing"
Pode um alias de estrutura seu próprio membro inicial e único?
Por exemplo, esse código é válido ou invoca um comportamento indefinido violando as regras de alias?
Por que posso usar static_cast com void *, mas não com char *
Eu sei dissoreinterpret_cast [http://en.cppreference.com/w/cpp/language/reinterpret_cast]é usado principalmente indo ou vindo dechar*. Mas fiquei surpreso ao descobrir questatic_cast [http://en.cppreference.com/w/cpp/language/static_cast]poderia ...
Buffers de memória compartilhada em C ++ sem violar regras estritas de alias
Eu estou lutando com a implementação de um buffer de memória compartilhada sem quebrar as regras de aliasing rigorosas do C99.Suponha que eu tenha algum códi...
Maneira correta e portátil de interpretar o buffer como uma estrutura
O contexto do meu problema está na programação de rede. Digamos que eu queira enviar mensagens pela rede entre dois programas. Por simplicidade, digamos que ...
Alias de matrizes multidimensionais
É sabido que uma matriz 2D é uma matriz de matrizes e que, por padrão, é necessário queum conjunto de objetos não vazio alocado de forma contígua (6.2.5 Tipos §20) - objeto sendo uma matriz 1D aqui. Também é sabido que, para todas as ...
bits flutuantes e aliasing estrito
Estou tentando extrair os bits de um flutuador sem invocar um comportamento indefinido. Aqui está minha primeira tentativa: unsigned foo(float x) { unsigned* u = (unsigned*)&x; return *u; }Pelo que entendi, isso não garante que funcione devido a ...
Reinterpretar struct com membros do mesmo tipo que uma matriz de uma maneira compatível com o padrão [duplicado]
Esta pergunta já tem uma resposta aqui: Converter matriz dupla em uma estrutura de duplas [/questions/31082389/casting-double-array-to-a-struct-of-doubles] 6 respostasEm várias bases de código de matemática 3d, às vezes encontro algo ...
Aviso de "cancelamento de referência de ponteiro puncionado por tipo quebrará regras de alias estritas"
Eu uso um código onde eu converter um enum * para int *. Algo assim: enum foo { ... } ... foo foobar; int *pi = reinterpret_cast<int*>(&foobar);Ao compilar o código (g ++ 4.1.2), recebo a seguinte mensagem de aviso: dereferencing type-punned ...