1*5f757f3fSDimitry Andric// -*- C++ -*- 2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 3*5f757f3fSDimitry Andric// 4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*5f757f3fSDimitry Andric// 8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 9*5f757f3fSDimitry Andric 10*5f757f3fSDimitry Andricexport namespace std { 11*5f757f3fSDimitry Andric // [tuple.tuple], class template tuple 12*5f757f3fSDimitry Andric using std::tuple; 13*5f757f3fSDimitry Andric 14*5f757f3fSDimitry Andric // [tuple.like], concept tuple-like 15*5f757f3fSDimitry Andric 16*5f757f3fSDimitry Andric#if _LIBCPP_STD_VER >= 23 17*5f757f3fSDimitry Andric // [tuple.common.ref], common_reference related specializations 18*5f757f3fSDimitry Andric using std::basic_common_reference; 19*5f757f3fSDimitry Andric using std::common_type; 20*5f757f3fSDimitry Andric#endif 21*5f757f3fSDimitry Andric 22*5f757f3fSDimitry Andric // [tuple.creation], tuple creation functions 23*5f757f3fSDimitry Andric using std::ignore; 24*5f757f3fSDimitry Andric 25*5f757f3fSDimitry Andric using std::forward_as_tuple; 26*5f757f3fSDimitry Andric using std::make_tuple; 27*5f757f3fSDimitry Andric using std::tie; 28*5f757f3fSDimitry Andric using std::tuple_cat; 29*5f757f3fSDimitry Andric 30*5f757f3fSDimitry Andric // [tuple.apply], calling a function with a tuple of arguments 31*5f757f3fSDimitry Andric using std::apply; 32*5f757f3fSDimitry Andric 33*5f757f3fSDimitry Andric using std::make_from_tuple; 34*5f757f3fSDimitry Andric 35*5f757f3fSDimitry Andric // [tuple.helper], tuple helper classes 36*5f757f3fSDimitry Andric using std::tuple_element; 37*5f757f3fSDimitry Andric using std::tuple_size; 38*5f757f3fSDimitry Andric 39*5f757f3fSDimitry Andric // [tuple.elem], element access 40*5f757f3fSDimitry Andric using std::get; 41*5f757f3fSDimitry Andric using std::tuple_element_t; 42*5f757f3fSDimitry Andric 43*5f757f3fSDimitry Andric // [tuple.rel], relational operators 44*5f757f3fSDimitry Andric using std::operator==; 45*5f757f3fSDimitry Andric using std::operator<=>; 46*5f757f3fSDimitry Andric 47*5f757f3fSDimitry Andric // [tuple.traits], allocator-related traits 48*5f757f3fSDimitry Andric using std::uses_allocator; 49*5f757f3fSDimitry Andric 50*5f757f3fSDimitry Andric // [tuple.special], specialized algorithms 51*5f757f3fSDimitry Andric using std::swap; 52*5f757f3fSDimitry Andric 53*5f757f3fSDimitry Andric // [tuple.helper], tuple helper classes 54*5f757f3fSDimitry Andric using std::tuple_size_v; 55*5f757f3fSDimitry Andric} // namespace std 56