std:: atomic_fetch_max, std:: atomic_fetch_max_explicit
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<atomic>
|
||
|
template
<
class
T
>
T atomic_fetch_max
(
std::
atomic
<
T
>
*
obj,
|
(1) | (C++26 起) |
|
template
<
class
T
>
T atomic_fetch_max
(
volatile
std::
atomic
<
T
>
*
obj,
|
(2) | (C++26 起) |
|
template
<
class
T
>
T atomic_fetch_max_explicit
(
std::
atomic
<
T
>
*
obj,
|
(3) | (C++26 起) |
|
template
<
class
T
>
T atomic_fetch_max_explicit
(
volatile
std::
atomic
<
T
>
*
obj,
|
(4) | (C++26 起) |
以原子方式将 obj 所指向的值替换为 obj 旧值与 arg 之间执行 std::max 的结果。返回 obj 先前持有的值。该操作的执行方式相当于以下代码:
如果
std::atomic<T>
没有
fetch_max
成员(该成员仅适用于
整型
和
指针
类型,不包括
bool
),则程序非良构。
目录 |
参数
| obj | - | 指向待修改原子对象的指针 |
| arg | - | 将与原子对象中存储的值进行 std::max 运算的值 |
| order | - | 内存同步排序方式 |
返回值
在 * obj 的 修改顺序 中,紧邻此函数生效前的值。
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_atomic_min_max
|
202403L
|
(C++26) | 原子最小值/最大值 |
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(C++26)
|
以原子方式执行参数与原子对象值之间的
std::max
并获取先前持有的值
(
std::atomic<T>
的公开成员函数)
|
|
(C++26)
(C++26)
|
将原子对象替换为与非常量参数进行
std::min
的结果并获取原子的先前值
(函数模板) |