Sdílet prostřednictvím


<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.