C++ Tuple 库 - get
描述
它用于获取元素并返回对元组 tpl 的第 I 个元素的引用。
声明
以下是 std::get 的声明。
C++98
template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type& get(tuple<Types...>& tpl) noexcept; template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type&& get(tuple<Types...>&& tpl) noexcept; template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type const& get(const tuple<Types...>& tpl) noexcept;
C++11
template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type& get(tuple<Types...>& tpl) noexcept; template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type&& get(tuple<Types...>&& tpl) noexcept; template <size_t I, class... Types> typename tuple_element< I, tuple<Types...> >::type const& get(const tuple<Types...>& tpl) noexcept;
参数
I − 它包含元素的位置。
Types − 它包含元素的类型。
返回值
它返回对元组 tpl 的第 I 个元素的引用。
异常
No-throw guarantee − 这个成员函数从不抛出异常。
数据竞争
lhs 和 rhs 被访问,并且最多访问其所有成员。
示例
在下面的 std::get 示例中。
#include <iostream> #include <tuple> int main () { std::tuple<int,char> mytuple (10,'x'); std::get<0>(mytuple) = 20; std::cout << "tuple contains: "; std::cout << std::get<0>(mytuple) << " and " << std::get<1>(mytuple); std::cout << std::endl; return 0; }
输出应该是这样的 −
tuple contains: 20 and x