函式模板
<tuple>

std::make_tuple

template<class... Types>  tuple<VTypes...> make_tuple (Types&&... args);
構造元組
構造一個適當的 tuple 型別物件來包含 args 中指定的元素。

返回物件的型別 (tuple<VTypes...>) 從 Types 推導得出:對於 Types 中的每種型別,其 decay 等效型別將用於 VTypes (除了 reference_wrapper 型別,其將使用相應的引用型別代替)。

該函式呼叫 tuple 的初始化建構函式,將 args 轉發給它。

引數

args
構造的 tuple 應包含的元素列表。

返回值

一個適當型別的 tuple 物件,用於容納 args

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// make_tuple example
#include <iostream>
#include <tuple>
#include <functional>

int main()
{
  auto first = std::make_tuple (10,'a');             // tuple < int, char >

  const int a = 0; int b[3];                         // decayed types:
  auto second = std::make_tuple (a,b);               // tuple < int, int* >

  auto third = std::make_tuple (std::ref(a),"abc");  // tuple < const int&, const char* >

  std::cout << "third contains: " << std::get<0>(third);
  std::cout << " and " << std::get<1>(third);
  std::cout << std::endl;

  return 0;
}

輸出
third contains: 0 and abc


資料競爭

如果 Types 中的任何型別是支援移動語義的型別的右值引用,則其對應的引數會被修改。

異常安全

該函式為每個物件提供的保證級別與相應元素建構函式提供的相同。

另見