函数模板
<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


另见