Archivo de encabezado de la biblioteca estándar <new>
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de gestión de memoria dinámica, en particular, proporciona características de gestión de memoria de bajo nivel.
Funciones | |
| Funciones de asignación. (función) | |
| Funciones de desasignación. (función) | |
(C++11) |
Obtiene el nuevo controlador actual. (función) |
| Registra un controlador nuevo. (función) | |
(C++17) |
Barrera de optimización de puntero. (plantilla de función) |
Clases | |
| Excepción que se produce cuando la asignación de memoria falla. (clase) | |
(C++11) |
Excepción que se produce en la asignación de un array con una longitud inválida. (clase) |
| Etiqueta de tipo utilizada para seleccionar una función de asignación que no lanza excepciones. (clase) | |
(C++17) |
Tipo utilizado para pasar alineamiento a funciones de asignación y desasignación con funcionalidad de alineamiento. (clase) |
(C++20) |
Tipo de etiqueta utilizado para identificar sobrecargas de delete de destrucción del operador delete. (clase) |
Tipos | |
| Tipo de puntero a función del nuevo controlador. (typedef) | |
Objetos | |
Un objeto de tipo nothrow_t utilizado para seleccionar una función de asignación que no lanza excepciones. (constante) | |
| Desplazamiento mínimo para evitar compartimiento falso (false sharing). Desplazamiento máximo para promover compartimiento verdadero (true sharing). (constante) | |
Sinopsis
namespace std {
class bad_alloc;
class bad_array_new_length;
struct destroying_delete_t {
explicit destroying_delete_t() = default;
};
inline constexpr destroying_delete_t destroying_delete{};
enum class align_val_t : size_t {};
struct nothrow_t { explicit nothrow_t() = default; };
extern const nothrow_t nothrow;
using new_handler = void (*)();
new_handler get_new_handler() noexcept;
new_handler set_new_handler(new_handler new_p) noexcept;
template <class T> constexpr T* launder(T* p) noexcept;
inline constexpr size_t
hardware_destructive_interference_size = /*definido por la implementación*/ ;
inline constexpr size_t
hardware_constructive_interference_size = /*definido por la implementación*/ ;
}
void* operator new(std::size_t size);
void* operator new(std::size_t size, std::align_val_t alignment);
void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
void* operator new(std::size_t size, std::align_val_t alignment,
const std::nothrow_t&) noexcept;
void operator delete(void* ptr) noexcept;
void operator delete(void* ptr, std::size_t size) noexcept;
void operator delete(void* ptr, std::align_val_t alignment) noexcept;
void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
void operator delete(void* ptr, const std::nothrow_t&) noexcept;
void operator delete(void* ptr, std::align_val_t alignment,
const std::nothrow_t&) noexcept;
void* operator new[](std::size_t size);
void* operator new[](std::size_t size, std::align_val_t alignment);
void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;
void* operator new[](std::size_t size,
std::align_val_t alignment,
const std::nothrow_t&) noexcept;
void operator delete[](void* ptr) noexcept;
void operator delete[](void* ptr, std::size_t size) noexcept;
void operator delete[](void* ptr, std::align_val_t alignment) noexcept;
void operator delete[](void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
void operator delete[](void* ptr, const std::nothrow_t&) noexcept;
void operator delete[](void* ptr, std::align_val_t alignment,
const std::nothrow_t&) noexcept;
void* operator new (std::size_t size, void* ptr) noexcept;
void* operator new[](std::size_t size, void* ptr) noexcept;
void operator delete (void* ptr, void*) noexcept;
void operator delete[](void* ptr, void*) noexcept;