Freigeben über


typedef <new>

hardware_constructive_interference_size

inline constexpr size_t hardware_constructive_interference_size = implementation-defined;

Hinweise

Diese Zahl ist die maximale empfohlene Größe des zusammenhängenden Speichers, der von zwei Objekten belegt wird, auf die durch gleichzeitige Threads zugegriffen wird. Es muss mindestens alignof(max_align_t)sein.

Beispiel

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;

Hinweise

Diese Zahl ist der minimale empfohlene Offset zwischen zwei gleichzeitig aufgerufenen Objekten, um Leistungsbeeinträchtigungen aufgrund der durch die Implementierung eingeführten Inhalte zu vermeiden. Es muss mindestens alignof(max_align_t)sein.

Beispiel

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

new_handler

Der new_handler Typ verweist auf eine Funktion, die für die Verwendung als new handlerFunktion geeignet ist, eine Funktion, die Speicher freigeben oder freigeben kann.

typedef void (*new_handler)();

Hinweise

Wenn die Funktion dieses Typs festgelegt std::set_new_handlerwird, wird die Funktion aufgerufen, operator new oder operator new[] wenn sie eine Anforderung für mehr Speicher nicht erfüllen können.

Beispiel

Ein Beispiel, das als Rückgabewert verwendet new_handler wird, finden Sie unter set_new_handler.