Acabo de enterarme de la construcción de C++ llamada "ubicación nueva". Le permite controlar exactamente a dónde señala un puntero en la memoria. Se ve así:¿Cuáles son los usos de la construcción C++ "placement new"?
#include <new> // Must #include this to use "placement new"
#include "Fred.h" // Declaration of class Fred
void someCode()
{
char memory[sizeof(Fred)];
void* place = memory;
Fred* f = new(place) Fred(); // Create a pointer to a Fred(),
// stored at "place"
// The pointers f and place will be equal
...
}
(ejemplo de C++ FAQ Lite)
En este ejemplo, el puntero this
de Fred será igual a place
.
Lo he visto usado en el código de nuestro equipo una o dos veces. En tu experiencia, ¿qué hace este constructo? ¿Tienen otros lenguajes de puntero construcciones similares? Para mí, parece una reminiscencia de equivalence
en FORTRAN, que permite que variables dispares ocupen la misma ubicación en la memoria.
¿Puede profundizar en eso? Útil para paginación? ¿O útil para enviar de nuevo? Veo la paginación de nuevo, sin imaginar el aviso. – ApplePieIsGood