Resultados da pesquisa a pedido "placement-new"

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

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

3 a resposta

Usando operador new e operator delete com um conjunto de memórias / alocador personalizado

Estou trabalhando na implementação de um pool de memória / alocador de memória e configurando-o em uma mansão em que apenas um tipo de objeto "Cliente" especial pode ser extraído do pool. O cliente pode ser construído diretamente no pool ou pode ...

2 a resposta

Aliasing estrito do C ++ quando não estiver usando o ponteiro retornado pelo posicionamento new

Isso pode causar um comportamento indefinido? uint8_t storage[4]; // We assume storage is properly aligned here. int32_t* intPtr = new((void*)storage) int32_t(4); // I know this is ok: int32_t value1 = *intPtr; *intPtr = 5; // But can one of the ...

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); } ...

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

2 a resposta

Substituindo um objeto por um objeto do mesmo tipo

O seguinte está bem definido? #include <iostream> #include <string.h> using namespace std; struct Const { const int i; Const (int i) : i(i) {} int get0() { return 0; } // best accessor ever! }; int main() { Const *q,*p = new Const(1); new (p) ...

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