最終更新日時:
が更新

履歴 編集

function
<forward_list>

std::forward_list::emplace_front(C++11)

template <class... Args>
void emplace_front(Args&&... args);

概要

直接構築で新たな要素を先頭に追加する。

この関数の引数args...は、要素型Tのコンストラクタ引数である。当関数の内部で要素型Tのコンストラクタを呼び出し、追加する要素を構築する。

戻り値

なし

計算量

定数時間

#include <iostream>
#include <forward_list>
#include <utility>
#include <string>
#include <algorithm>

int main()
{
  std::forward_list<std::pair<int, std::string>> ls;

  ls.emplace_front(1, std::string("world"));
  ls.push_front(std::make_pair(3, std::string("hello")));

  std::for_each(ls.begin(), ls.end(), [](decltype(ls)::const_reference x) {
    std::cout << x.first << ',' << x.second << std::endl;
  });
}

出力

3,hello
1,world

バージョン

言語

  • C++11

処理系

  • Clang: ??
  • GCC:
  • GCC, C++11 mode: 4.7.0
  • ICC: ??
  • Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1
    • Visual C++ 10.0は、可変引数テンプレートに対応していないため、argsに1つしか実引数を渡せない。
    • Visual C++ 11.0は、可変引数テンプレートに対応していないため、不完全な実装である。

参照