다음을 통해 공유


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