template<class... TTypes>
  constexpr tuple<unwrap_ref_decay_t<TTypes>...> make_tuple(TTypes&&... t);
template<class... TTypes>
  constexpr tuple<TTypes&&...> forward_as_tuple(TTypes&&... t) noexcept;
template<class... TTypes>
  constexpr tuple<TTypes&...> tie(TTypes&... t) noexcept;
template<class... Tuples>
  constexpr tuple<CTypes...> tuple_cat(Tuples&&... tpls);