Skip to content

Latest commit

 

History

History
71 lines (53 loc) · 1.74 KB

forward_as_tuple.md

File metadata and controls

71 lines (53 loc) · 1.74 KB

forward_as_tuple

  • tuple[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp11[meta cpp]
namespace {
  template <class... Types>
  tuple<Types&&...> forward_as_tuple(Types&&...) noexcept;           // C++11

  template <class... Types>
  constexpr tuple<Types&&...> forward_as_tuple(Types&&...) noexcept; // C++14
}

概要

パラメータの元の型からなるtupleを生成する。左辺値参照型は左辺値参照型として、右辺値は右辺値参照として転送される。

戻り値

パラメータの元の型からなるtupleオブジェクト

例外

投げない

#include <iostream>
#include <tuple>
#include <string>

int main()
{
  // 一時オブジェクトからは右辺値参照のtupleが作られる
  std::tuple<int&&, char&&, std::string&&> t1 = std::forward_as_tuple(1, 'a', std::string("Hello"));

  // 左辺値からは左辺値参照のtupleが作られる
  int a = 1;
  char b = 'a';
  std::string c = "Hello";
  std::tuple<int&, char&, std::string&> t2 = std::forward_as_tuple(a, b, c);
}
  • std::forward_as_tuple[color ff0000]
  • std::tuple[link tuple.md]

出力

バージョン

言語

  • C++11

処理系

注意事項

forward_as_tupleは、ドラフト仕様の段階でpack_argumentsという名前で一時期表記されていた。
コンパイラのバージョンによっては、この名前での実装もありえる。

参照