std::atomic<T>::atomic
来自cppreference.com
(1) | ||
atomic() noexcept = default; |
(C++11 起) (C++20 前) |
|
constexpr atomic() noexcept(std::is_nothrow_default_constructible_v<T>); |
(C++20 起) | |
constexpr atomic( T desired ) noexcept; |
(2) | (C++11 起) |
atomic( const atomic& ) = delete; |
(3) | (C++11 起) |
构造新的原子变量:
1) 默认构造函数是平凡的:不发生静态和线程局域对象的零初始化以外的初始化。
std::atomic_init 可用于完成初始化。
|
(C++20 前) |
1) 值初始化底层对象(即用 T()))。该初始化非原子。
此重载只有在 std::is_default_constructible_v<T> 为 true 时才会参与重载决议。
|
(C++20 起) |
2) 以 desired 初始化底层值。该初始化非原子。
3) 原子对象非可复制构造 (CopyConstructible) 。
参数
desired | - | 用以初始化的值 |
注解
默认初始化的 std::atomic<T> 不含 |
(C++20 前) |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 4169 | C++20 | std::is_default_constructible_v 能报告假阳性 | 约束了默认构造函数 |