std::experimental::optional<T>::emplace
来自 cppreference.cn
< 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 不包含值(先前包含的值(如果有)已被销毁)。
[编辑] 参见
赋值内容 (公共成员函数) |