<new>
형식 정의
hardware_constructive_interference_size
inline constexpr size_t hardware_constructive_interference_size = implementation-defined;
설명
이 숫자는 동시 스레드에 의해 temporal 지역성으로 액세스하는 두 개체가 차지하는 연속 메모리의 최대 권장 크기입니다. 그것은 적어도 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
.