std::stack<T,Container>::emplace
提供: cppreference.com
template< class... Args > void emplace( Args&&... args ); |
(C++11以上) (C++17未満) |
|
template< class... Args > decltype(auto) emplace( Args&&... args ); |
(C++17以上) | |
新しい要素をスタックトップにプッシュします。 要素はその場で構築されます。 つまり、コピーやムーブは行われません。 要素のコンストラクタはこの関数に与えられたものとまったく同じ引数で呼ばれます。
実質的に c.emplace_back(std::forward<Args>(args)...); を呼びます。
引数
| args | - | 要素のコンストラクタに転送される引数 |
戻り値
| (なし) | (C++17未満) |
上記の Container::emplace_back の呼び出しによって返された値または参照 (もしあれば)。 |
(C++17以上) |
計算量
Container::emplace_back の計算量と同等
欠陥報告
以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。
| DR | 適用先 | 発行時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2783 | C++17 | emplace returned reference, breaking compatibility with pre-C++17 containers
|
returns decltype(auto)
|
関連項目
| 要素をトップに挿入します (パブリックメンバ関数) | |
| トップの要素を削除します (パブリックメンバ関数) |