<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 handler
işleve işaret edebilir.
typedef void (*new_handler)();
Açıklamalar
Bu türün işlevi tarafından std::set_new_handler
ayarlandığı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
. .