Resultados da pesquisa a pedido "strict-aliasing"

2 a resposta

Existe uma diferença (semântica) entre o valor de retorno do posicionamento novo e o valor convertido de seu operando?

Existe uma diferença (semântica) entre o valor de retorno do posicionamento novo e o valor convertido de seu operando? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Faza eb diferem de ...

4 a resposta

Digite puncionando uma estrutura em C e C ++ por meio de uma união

Eu compilei isso no gcc e no g ++ com pedante e não recebo um aviso em nenhum deles: #include <stdio.h> #include <stdlib.h> #include <string.h> struct a { struct a *next; int i; }; struct b { struct b *next; int i; }; struct c { int x, x2, ...

2 a resposta

Todos os ponteiros são derivados de ponteiros para tipos de estrutura iguais?

A questãoA questão de saber se todos os ponteiros derivados de ponteiros para tipos de estrutura são iguais, não é fácil de responder. Acho que é uma pergunta significativa pelas duas razões principais a seguir. UMA.A falta de um ponteiro para ...

1 a resposta

A herança via desenrolamento viola a regra estrita de aliasing?

Eu tenho um struct X que herda de struct Base. No entanto, na minha configuração atual, devido ao alinhamento, o tamanho de X é 24B: typedef struct { double_t a; int8_t b; } Base; typedef struct { Base base; int8_t c; } X;Para economizar ...

3 a resposta

gcc: Como usar o __attribute ((__ may_alias__)) corretamente para evitar o aviso de "exclusão do ponteiro puncionado por tipo"

Eu tenho algum código que usa punção de tipo para evitar ter que chamar o membro de "objeto" construtor e destruidor, a menos que / até que seja realmente necessário usar o objet Funciona bem, mas no g ++ 4.4.3, recebo este temido aviso do ...

1 a resposta

Como implementar "_mm_storeu_epi64" sem problemas de alias?

(Nota: embora esta pergunta seja sobre "armazenamento", o caso "carregar" tem os mesmos problemas e é perfeitamente simétrico.) Os intrínsecos SSE fornecem uma_mm_storeu_pd [http://msdn.microsoft.com/en-us/library/7ek6y8w1(v=vs.90).aspx]função ...

6 a resposta

Reutilizando um buffer flutuante para dobras sem comportamento indefinido

Em uma função específica do C ++, por acaso tenho um ponteiro para um grande buffer de flutuadores que quero usar temporariamente para armazenar metade do número de duplas. Existe um método para usar esse buffer como espaço temporário para ...

2 a resposta

Podemos acessar o membro de um objeto de tipo de classe inexistent

No padrão c ++, em [basic.lval] /11. [http://eel.is/c++draft/basic.lval#11.6] diz: Se um programa tentar acessar o valor armazenado de um objeto por meio de um valor gl de outro que não seja um dos seguintes tipos, o comportamento ...

2 a resposta

Entendo o alias estrito de C / C ++ corretament

Eu liEste artigo sobre aliasing estrito de C / C ++ [http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html] . Eu acho que o mesmo se aplica ao C ++. Pelo que entendi, o aliasing estrito é usado para reorganizar ...

2 a resposta

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