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 handler
Funktion geeignet ist, eine Funktion, die Speicher freigeben oder freigeben kann.
typedef void (*new_handler)();
Hinweise
Wenn die Funktion dieses Typs festgelegt std::set_new_handler
wird, 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
.