Resultados da pesquisa a pedido "placement-new"

6 a resposta

O que é um construtor no local em C ++? [duplicado]

Possível duplicado: "Posicionamento novo" do C ++ [https://stackoverflow.com/questions/222557/cs-placement-new] O que é um construtor no local em C ++? por exemplo. Tipo de dados * x = novo (y) Tipo de dados ();

4 a resposta

Como o canal novo sabe qual layout criar?

#include <iostream> #include <typeinfo> struct A { int a; }; struct B : virtual A { int b; }; struct C : virtual A { int c; }; struct D : B,C { int d; }; int main() { D complete; B contiguous; B & separate = complete; B * p[2] = {&separate, ...

2 a resposta

É permitido chamar o destruidor explicitamente seguido pelo posicionamento new em uma variável com vida útil fixa?

Eu sei que chamar o destruidor explicitamente pode levar a um comportamento indefinido por causa da chamada do destruidor duplo, como aqui: #include <vector> int main() { std::vector<int> foo(10); foo.~vector<int>(); return 0; // Oops, ...

4 a resposta

Legalidade do uso da exclusão do operador em um ponteiro obtido do posicionamento new

Estou certo de que esse código deve ser ilegal, pois claramente não funcionará, mas parece ser permitido pelo C ++ 0x FCD. class X { /* ... */}; void* raw = malloc(sizeof (X)); X* p = new (raw) X(); // according to the standard, the RHS is a ...

5 a resposta

matriz de caracteres como armazenamento para posicionamento novo

O C ++ legal a seguir tem um comportamento bem definido? class my_class { ... }; int main() { char storage[sizeof(my_class)]; new ((void *)storage) my_class(); }Ou isso é problemático devido a considerações de fundição / alinhamento de ponteiro?

1 a resposta

Colocação nova e atribuição de classe com membro const

Por que esse comportamento indefinido? struct s { const int id; // <-- const member s(int id): id(id) {} s& operator =(const s& m) { return *new(this) s(m); // <-- undefined behavior? } };(Citação do padrão seria bom). Esta questão surgiu ...

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

5 a resposta

Preciso realmente me preocupar com o alinhamento ao usar o novo operador de posicionamento?

I li thisQuando devo me preocupar com o alinhamento? [https://stackoverflow.com/questions/6474316/when-should-i-worry-about-alignment] mas ainda não sei se preciso me preocupar com o ponteiro não alinhado retornado pelo posicionamento de novo ...

2 a resposta

STL Posicionamento de alocação de contêineres novo

Não consegui encontrar uma resposta exata para esta pergunta e, portanto, postando aqui. Quando penso em vetor, ele precisa criar objetos em um local de memória contíguo. Isso significa que o vetor mantém a memória alocada e precisa fazer uma ...

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