命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | utility‎ | expected
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
主模板
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) 销毁包含的值,然后使用 il 和 std::forward<Args>(args)... 直接初始化 *this 中包含的预期值。
只有当 std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...>true 时,此重载才会参与重载解析。
3) 如果 *this 包含一个意外值,则销毁该值。

内容

[编辑] 参数

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

[编辑] 返回值

[编辑] 注释

如果 T 的构造可能是抛出异常的,则可以使用 operator= 代替。

[编辑] 示例

[编辑] 另请参阅

分配内容
(公共成员函数) [编辑]