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 在此调用后即不再含有值(之前所含有的值,如果有,即被销毁)。
参阅
赋值内容 (公开成员函数) |