【发布时间】:2017-03-31 02:47:51
【问题描述】:
我刚刚在 cppreference http://en.cppreference.com/w/cpp/utility/tuple/get 上为 std::tuple::get 阅读了 C++17 的更新接口,新的重载从 get<>() 函数返回 const Type&&。为什么要返回 const Type&& 而不是普通的 const Type&?你不能从任何一种类型的实例中移动..
这些是我所指的函数声明供参考
template< class T, class... Types >
constexpr const T&& get(const tuple<Types...>&& t);
和
template< std::size_t I, class... Types >
constexpr std::tuple_element_t<I, tuple<Types...> >const&&
get( const tuple<Types...>&& t );
【问题讨论】:
-
这样你就可以完美地转发文字抛出整个调用
double d = std::get<double>(std::make_tuple(1, "Foo", 3.14)); -
@HenriMenke 我想他们问的是返回,而不是转发。
标签: c++ tuples c++14 rvalue-reference c++17