函式模板
<tuple>

std::get

(1)
template <size_t I, class... Types>typename tuple_element< I, tuple<Types...> >::type& get(tuple<Types...>& tpl) noexcept;
(2)
template <size_t I, class... Types>typename tuple_element< I, tuple<Types...> >::type&& get(tuple<Types...>&& tpl) noexcept;
(3)
template <size_t I, class... Types>typename tuple_element< I, tuple<Types...> >::type const& get(const tuple<Types...>& tpl) noexcept;
獲取元素
返回對元組 tpl 的第 I 個元素的引用。

版本 (2) 接受元組的右值引用作為引數,並對返回的元素應用 forward

版本 (3) 接受元組的 const 引用作為引數,並返回該元素的 const 引用。

get也可用於類似元組的物件,如 pairarray(請參閱 pairarray 的特化版本)。

請注意,get使用模板引數 I 來確定要獲取的元素。模板引數必須是 constexpr(編譯時常量值)。

模板引數

I
元組中元素的位​​置,第一個元素的位​​置為 0。
size_t 是一個無符號整數型別。
型別
元組中元素的型別(通常從 tpl 隱式獲取)。

Function parameters (函式引數)

tpl
一個元組物件,包含多於I個元素。

返回值

元組中指定位置元素的引用。
tuple_element< I, tuple<Types...> >::type是元組中第 I 個元素的型別。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// tuple's get
#include <iostream>
#include <tuple>

int main ()
{
  std::tuple<int,char> mytuple (10,'a');

  std::get<0>(mytuple) = 20;

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

  return 0;
}

輸出
mytuple contains: 20 and a


另見