名稱空間
變體
操作

std::experimental::optional<T>::emplace

來自 cppreference.com
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
template< class... Args >
void emplace( Args&&... args );
(庫基礎 TS)
template< class U, class... Args >
void emplace( std::initializer_list<U> ilist, Args&&... args );
(庫基礎 TS)

就地構造包含值。如果呼叫前 *this 已經包含值,則透過呼叫其解構函式銷燬包含值。

1) 透過以 std::forward<Args>(args)... 為引數進行直接初始化(但不是直接列表初始化)來初始化包含值。
2) 透過以 ilist, std::forward<Args>(args)... 為引數呼叫其建構函式來初始化包含值。此過載僅當 std::is_constructible<T, std::initializer_list<U>&, Args&&...>::valuetrue 時才參與過載決議。

目錄

[編輯] 引數

args... - 要傳遞給建構函式的引數
ilist - 要傳遞給建構函式的初始化列表
型別要求
-
T 必須可從 Args... 構造
-
T 必須可從 std::initializer_listArgs... 構造

[編輯] 返回值

(無)

[編輯] 異常

T 的選定建構函式丟擲的任何異常。如果丟擲異常,則在此呼叫後 *this 不包含值(如果之前包含值,則已被銷燬)。

[編輯] 參閱

賦值內容
(公共成員函式) [編輯]