Resultados da pesquisa a pedido "reinterpret-cast"

2 a resposta

É uma violação estrita de aliasing alias a struct como seu primeiro membro?

Código de amostra: struct S { int x; }; int func() { S s{2}; return (int &)s; // Equivalent to *reinterpret_cast<int *>(&s) }Eu acredito que isso é comum e considerado aceitável. O padrão garante que não haja preenchimento inicial na estrutura. ...

2 a resposta

É um comportamento indefinido `reinterpret_cast` a` T * `a` T (*) [N] `?

Considere o seguinte cenário: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()); (*p)[0] = 42;É istocomportamento indefinido? Eu acho que é. a.data() retorna umint*, que não é o mesmo queint(*)[8] oregras de alias de ...

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

2 a resposta

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

1 a resposta

reinterpret_cast, char * e comportamento indefinido

Quais são os casos em quereinterpret_casting achar* (ouchar[N]) é um comportamento indefinido e quando é um comportamento definido? Qual é a regra geral que devo usar para responder a esta pergunta? Como aprendemos comessa questão ...

5 a resposta

O bit std :: array é compatível com o antigo array C?

É o subjacenterepresentação de bits para umstd::array<T,N> v e umT u[N] o mesmo? Em outras palavras, é seguro copiarN*sizeof(T) bytes de um para o outro? (Através dereinterpret_cast oumemcpy.) Editar: Para esclarecimento, a ênfase está ...

2 a resposta

Reinterpret_cast leva a um comportamento indefinido?

Eu tenho um modelo de classeA que contém um contêiner de ponteiros (T*): template <typename T> class A { public: // ... private: std::vector<T*> data; }; e várias funções como: void f(const A<const T>&); void g(const A<const T>&);É bom chamar ...

3 a resposta

Que tipo de elenco deve ser passado de pai para filho?

Esta questão é sobre quaisElenco no estilo C ++ [https://msdn.microsoft.com/en-us/library/5f6c9f8h.aspx]deve ser usado para fazer essa conversão. Estou ciente de que um elenco de estilo C pode conseguir isso. Para o seguinteclass ...

3 a resposta

Converter uma estrutura em uma matriz [duplicado]

Esta pergunta já tem uma resposta aqui: O acesso ao primeiro campo de uma estrutura através de uma conversão C viola o aliasing estrito? [/questions/9747010/does-accessing-the-first-field-of-a-struct-via-a-c-cast-violate-strict-aliasing] 1 ...

5 a resposta

Problemas de aliasing podem ser evitados com variáveis const

Minha empresa usa um servidor de mensagens que envia uma mensagem para umconst char* e o lança no tipo de mensagem. Fiquei preocupado com isso depois de perguntaressa questão [https://stackoverflow.com/q/28697626/2642059]. Não estou ciente de ...