对于每个Types...中的Ti,Vtypes...中的对应类型Vi为std::decay<Ti>::type,除非应用std::decay对某些类型X导致std::reference_wrapper<X>,该情况下推导的类型为X&。 参数 args-构造 tuple 所用的零或更多参数 返回值 含给定值的std::tuple对象,如同用std::tuple<VTypes...>(std::forward<Types>(t).....
元组不必是std::tuple,可以为任何支持std::get和std::tuple_size的类型所替代;特别是可以用std::array和std::pair。 因为受保证的复制消除,不需要T为可移动。 可能的实现 namespacedetail{template<classT,classTuple,std::size_t...I>constexprT make_from_tuple_impl(Tuple&&t,std::index_sequence<I......