Definiciones de tipo de <new>

hardware_constructive_interference_size

inline constexpr size_t hardware_constructive_interference_size = implementation-defined;

Comentarios

Este número es el tamaño máximo recomendado de memoria contigua ocupada por dos objetos a los que se accede con localidad temporal por subprocesos simultáneos. Debe ser alignof(max_align_t) como mínimo.

Ejemplo

struct together {
    atomic<int> dog;
    int puppy;
};

struct kennel {
    // Other data members...
    alignas(sizeof(together)) together pack;
    // Other data members...
};

static_assert(sizeof(together) <= hardware_constructive_interference_size);

hardware_destructive_interference_size

inline constexpr size_t hardware_destructive_interference_size = implementation-defined;

Comentarios

Este número es el desplazamiento mínimo recomendado entre dos objetos a los que se accede simultáneamente para evitar la degradación del rendimiento debido a la contención introducida por la implementación. Debe ser alignof(max_align_t) como mínimo.

Ejemplo

struct keep_apart {
    alignas(hardware_destructive_interference_size) atomic<int> cat;
    alignas(hardware_destructive_interference_size) atomic<int> dog;
};

new_handler

El new_handler apunta a una función adecuada para su uso como new handler, una función que puede reclamar o liberar memoria.

typedef void (*new_handler)();

Comentarios

Cuando la función de este tipo se establece mediante std::set_new_handler, llama a operator new la función o operator new[] cuando no puede satisfacer una solicitud de más almacenamiento.

Ejemplo

Para obtener un ejemplo que usa new_handler como valor devuelto, vea set_new_handler.