名前空間
変種
操作

std::queue::emplace

提供: cppreference.com
< cpp‎ | container‎ | queue
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)

[編集] 関連項目

要素を末尾に挿入します
(パブリックメンバ関数) [edit]
最初の要素を削除します
(パブリックメンバ関数) [edit]