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 不包含值(如果之前包含值,则已被销毁)。
[编辑] 参阅
赋值内容 (公共成员函数) |