Resultados da pesquisa a pedido "placement-new"

2 a resposta

É `new (this) MyClass ();` comportamento indefinido após chamar diretamente o destruidor?

Emesta questão minha [https://stackoverflow.com/questions/6036086/is-it-valid-to-directly-call-a-virtual-destructor] , @DeadMG diz que reinicializando uma classe através dothis ponteiro é um comportamento indefinido. Existe alguma menção a isso ...

4 a resposta

Como excluir o objeto construído através da colocação de novo operador?

char * buf = new char[sizeof(T)]; new (buf) T; T * t = (T *)buf; //code... //here I should destruct *t but as it is argument of template and can be //instantiated via basic types as well (say int) so such code /*t->~T();*/ //is incorrect (maybe ...

2 a resposta

Posso usar o posicionamento new (this) no operator =?

Fundo Eu tenho uma classe complicada com muitas variáveis. Eu tenho um construtor de cópias testado e com som: Applepie::Applepie( const Applepie &copy) : m_crust(copy.m_crust), m_filling(copy.m_filling) { } Alguns dos construtores de cópia de ...

3 a resposta

É bem definido / legal a colocação de novo várias vezes no mesmo endereço?

(Nota: esta pergunta foi motivada ao tentar criar hackery de pré-processador para gerar uma alocação não operacional para responder a outra pergunta: Macro que aceita novo ...

6 a resposta

Destrua e construa um novo objeto usando a mesma variável

Às vezes é bom recomeçar. Em C ++, posso empregar esta seguinte manobra simples: { T x(31, Blue, false); x.~T(); // enough with the old x ::new (&x) T(22, Brown, true); // in with the new! // ... } No final do escopo, o destruidor ...