std::expected<T,E>::emplace
来自 cppreference.com
主模板 |
||
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 时,此重载才会参与重载解析。
只有当 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=
代替。
[编辑] 示例
本节尚未完善 原因:没有示例 |
[编辑] 另请参阅
分配内容 (公共成员函数) |