std:: atomic_fetch_min, std:: atomic_fetch_min_explicit
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더에 정의됨
<atomic>
|
||
|
template
<
class
T
>
T atomic_fetch_min
(
std::
atomic
<
T
>
*
obj,
|
(1) | (C++26부터) |
|
template
<
class
T
>
T atomic_fetch_min
(
volatile
std::
atomic
<
T
>
*
obj,
|
(2) | (C++26부터) |
|
template
<
class
T
>
T atomic_fetch_min_explicit
(
std::
atomic
<
T
>
*
obj,
|
(3) | (C++26부터) |
|
template
<
class
T
>
T atomic_fetch_min_explicit
(
volatile
std::
atomic
<
T
>
*
obj,
|
(4) | (C++26부터) |
obj 가 가리키는 값을 원자적으로 obj 의 이전 값과 arg 사이의 std::min 결과로 대체합니다. obj 가 이전에 보유하던 값을 반환합니다. 이 연산은 다음과 같이 실행된 것처럼 수행됩니다:
만약
std::atomic<T>
에
fetch_min
멤버가 없는 경우(이 멤버는
integral
과
pointer
타입에 대해서만 제공되며,
bool
은 제외됨), 프로그램은 ill-formed입니다.
목차 |
매개변수
| obj | - | 수정할 원자 객체에 대한 포인터 |
| arg | - | 원자 객체에 저장된 값과 std::min 할 값 |
| order | - | 메모리 동기화 순서 |
반환값
이 함수의 효과가 적용되기 직전의 modification order 에 있는 * obj 값.
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_atomic_min_max
|
202403L
|
(C++26) | Atomic minimum/maximum |
예제
|
이 섹션은 불완전합니다
이유: 예시가 없음 |
참고 항목
|
(C++26)
|
인자와 원자 객체의 값 사이에서
std::min
을 원자적으로 수행하고 이전에 보유한 값을 획득함
(
std::atomic<T>
의 public 멤버 함수)
|
|
(C++26)
(C++26)
|
원자 객체를 비원자 인자와의
std::max
결과로 대체하고 원자 객체의 이전 값을 획득함
(함수 템플릿) |