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 不包含值(如果之前包含值,則已被銷燬)。
[編輯] 參閱
賦值內容 (公共成員函式) |