Aracılığıyla paylaş


<new> tür tanımları

hardware_constructive_interference_size

inline constexpr size_t hardware_constructive_interference_size = implementation-defined;

Açıklamalar

Bu sayı, eşzamanlı iş parçacıkları tarafından zamansal yerellikle erişilen iki nesne tarafından kaplanmış bitişik belleğin önerilen en büyük boyutudur. En azından alignof(max_align_t)olmalıdır.

Örnek

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;

Açıklamalar

Bu sayı, uygulama tarafından sunulan çekişme nedeniyle performans düşüşü yaşanmasını önlemek için eş zamanlı olarak erişilen iki nesne arasında önerilen en düşük uzaklıktır. En azından alignof(max_align_t)olmalıdır.

Örnek

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

new_handler

türü new_handler , belleği geri kazanabilen veya serbest bırakabilen bir işlev olarak kullanıma uygun bir new handlerişleve işaret edebilir.

typedef void (*new_handler)();

Açıklamalar

Bu türün işlevi tarafından std::set_new_handlerayarlandığında, işlevi tarafından operator new veya operator new[] daha fazla depolama isteğine yanıt vermediğinde çağrılır.

Örnek

Dönüş değeri olarak kullanan new_handler bir örnek için bkz set_new_handler. .