<new>
– definice Typedef
hardware_constructive_interference_size
inline constexpr size_t hardware_constructive_interference_size = implementation-defined;
Poznámky
Toto číslo je maximální doporučená velikost souvislé paměti obsazené dvěma objekty, ke kterým přistupuje dočasné umístění souběžnými vlákny. Musí to být alespoň alignof(max_align_t)
.
Příklad
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;
Poznámky
Toto číslo je minimální doporučený posun mezi dvěma souběžně přistupovanými objekty, aby se zabránilo snížení výkonu kvůli kolizím zavedeným implementací. Musí to být alespoň alignof(max_align_t)
.
Příklad
struct keep_apart {
alignas(hardware_destructive_interference_size) atomic<int> cat;
alignas(hardware_destructive_interference_size) atomic<int> dog;
};
new_handler
Typ new_handler
odkazuje na funkci, která je vhodná pro použití jako new handler
, funkce, která může uvolnit nebo uvolnit paměť.
typedef void (*new_handler)();
Poznámky
Pokud je funkce tohoto typu nastavena std::set_new_handler
, funkce je volána operator new
nebo operator new[]
když nemůže splnit požadavek na větší úložiště.
Příklad
Příklad, který se používá new_handler
jako návratová hodnota, viz set_new_handler
.