xref: /freebsd/contrib/llvm-project/libcxx/modules/std/tuple.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
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