std::expected<T,E>::emplace

来自cppreference.com
< cpp‎ | utility‎ | expected
 
 
 
 
主模板
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

1) 销毁包含的值,然后以 std::forward<Args>(args)... 直接初始化 *this 中包含的预期值。
此重载只有在 std::is_nothrow_constructible_v<T, Args...>true 时才会参与重载决议。
2) 销毁包含的值,然后以 ilstd::forward<Args>(args)... 直接初始化 *this 中包含的预期值。
此重载只有在 std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...>true 时才会参与重载决议。
3) 如果 *this 包含一个非预期值,就销毁该值。

目录

[编辑] 参数

args - 传递给构造函数的实参
il - 传递给构造函数的初始化式列表

[编辑] 返回值

[编辑] 注解

如果 T 的构造是潜在抛出的,那么可以改用 operator=

[编辑] 示例

[编辑] 参阅

赋值内容
(公开成员函数) [编辑]