<new>
typedef
hardware_constructive_interference_size
inline constexpr size_t hardware_constructive_interference_size = implementation-defined;
備註
此數目是並行線程以時態區域存取的兩個物件所佔用的連續記憶體最大建議大小。 它至少 alignof(max_align_t)
必須是 。
範例
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;
備註
這個數位是兩個並行存取對象之間建議的最小位移,以避免因為實作所引進的爭用而導致效能降低。 它至少 alignof(max_align_t)
必須是 。
範例
struct keep_apart {
alignas(hardware_destructive_interference_size) atomic<int> cat;
alignas(hardware_destructive_interference_size) atomic<int> dog;
};
new_handler
型 new_handler
別會指向適合做為 new handler
的函式,這是可以回收或釋放記憶體的函式。
typedef void (*new_handler)();
備註
當此類型的函式由 std::set_new_handler
設定時,函式會由 operator new
呼叫,或 operator new[]
當函式無法滿足更多記憶體的要求時。
範例
如需使用 new_handler
做為傳回值的範例,請參閱 set_new_handler
。