Resultados da pesquisa a pedido "placement-new"

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?

4 a resposta

CUDA: agrupando a alocação de memória do dispositivo em C ++

Estou começando a usar o CUDA no momento e tenho que admitir que estou um pouco decepcionado com a API C. Entendo os motivos da escolha C, mas, se a linguagem tivesse sido baseada em C ++, vários aspectos seriam muito mais simples, por exemplo, ...

8 a resposta

C ++, é possível chamar um construtor diretamente, sem novo?

Posso chamar o construtor explicitamente, sem usarnew, se eu já tenho uma memória para objeto? class Object1{ char *str; public: Object1(char*str1){ str=strdup(str1); puts("ctor"); puts(str); } ~Object1(){ puts("dtor"); puts(str); free(str); } ...

2 a resposta

Como ler diretamente um grande pedaço de memória em std :: vector?

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

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

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

3 a resposta

É perigoso usar o posicionamento novo em um objeto antigo sem chamar explicitamente o destruidor primeiro?

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

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