std::experimental::optional<T>::emplace
来自 cppreference.com
< cpp | experimental | optional
template< class... Args > void emplace( Args&&... args ); |
(库基础 TS) | |
template< class U, class... Args > void emplace( std::initializer_list<U> ilist, Args&&... args ); |
(库基础 TS) | |
在原地构造包含的值。如果在调用之前 *this 已经包含一个值,则包含的值将通过调用其析构函数被销毁。
2) 通过调用其构造函数,使用 ilist, std::forward<Args>(args)... 作为参数来初始化包含的值。只有在 std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value 为 true 时,此重载才参与重载解析。
内容 |
[编辑] 参数
args... | - | 传递给构造函数的参数 |
ilist | - | 传递给构造函数的初始化列表 |
类型要求 | ||
-T 必须可从 Args... 构造。 | ||
-T 必须可从 std::initializer_list 和 Args... 构造。 |
[编辑] 返回值
(无)
[编辑] 异常
T
的选定构造函数抛出的任何异常。如果抛出异常,则在本次调用之后 *this 不包含任何值(以前包含的值,如果有,已被销毁)。
[编辑] 另请参阅
分配内容 (公共成员函数) |