std::expected<T,E>::emplace
来自 zh.cppreference.net
| 主模板 |
||
template< class... Args >
constexpr T& emplace( Args&&... args ) noexcept;
|
(1) | (从C++23开始) |
template< class U, class... Args >
constexpr T& emplace( std::initializer_list<U> il, Args&&... args ) noexcept;
|
(2) | (从C++23开始) |
void 偏特化 |
||
constexpr void emplace() noexcept;
|
(3) | (从C++23开始) |
就地构造一个期望值。调用后,has_value()返回 true。
仅当
std::is_nothrow_constructible_v<T, Args...>为true时,此重载参与重载决议。2) 销毁所含值,然后直接初始化
*this中包含的期望值为il和std::forward<Args>(args)...。仅当
std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...>为true时,此重载参与重载决议。3) 如果
*this包含一个非预期值,则销毁该值。参数
| args | - | 传递给构造函数的参数 |
| il | - | 传递给构造函数的初始化列表 |
返回值
1)
*
std::
construct_at
(
std::
addressof
(
val
)
,
std::
forward
<
Args
>
(
args
)
...
)
2)
*
std::
construct_at
(
std::
addressof
(
val
)
, il,
std::
forward
<
Args
>
(
args
)
...
)
注释
如果
T
的构造可能抛出异常,可以使用
operator=
作为替代方案。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
赋值内容
(公开成员函数) |