1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10export namespace std {
11  // [utility.swap], swap
12  using std::swap;
13
14  // [utility.exchange], exchange
15  using std::exchange;
16
17  // [forward], forward/move
18  using std::forward;
19#if _LIBCPP_STD_VER >= 23
20  using std::forward_like;
21#endif
22  using std::move;
23  using std::move_if_noexcept;
24
25  // [utility.as.const], as_const
26  using std::as_const;
27
28  // [declval], declval
29  using std::declval;
30
31  // [utility.intcmp], integer comparison functions
32  using std::cmp_equal;
33  using std::cmp_not_equal;
34
35  using std::cmp_greater;
36  using std::cmp_greater_equal;
37  using std::cmp_less;
38  using std::cmp_less_equal;
39
40  using std::in_range;
41
42#if _LIBCPP_STD_VER >= 23
43  // [utility.underlying], to_underlying
44  using std::to_underlying;
45
46  // [utility.unreachable], unreachable
47  using std::unreachable;
48#endif // _LIBCPP_STD_VER >= 23
49
50  // [intseq], compile-time integer sequences
51  using std::index_sequence;
52  using std::integer_sequence;
53
54  using std::make_index_sequence;
55  using std::make_integer_sequence;
56
57  using std::index_sequence_for;
58
59  // [pairs], class template pair
60  using std::pair;
61
62#if _LIBCPP_STD_VER >= 23
63  using std::basic_common_reference;
64  using std::common_type;
65#endif
66  // [pairs.spec], pair specialized algorithms
67  using std::operator==;
68  using std::operator<=>;
69
70  using std::make_pair;
71
72  // [pair.astuple], tuple-like access to pair
73  using std::tuple_element;
74  using std::tuple_size;
75
76  using std::get;
77
78  // [pair.piecewise], pair piecewise construction
79  using std::piecewise_construct;
80  using std::piecewise_construct_t;
81
82  // in-place construction
83  using std::in_place;
84  using std::in_place_t;
85
86  using std::in_place_type;
87  using std::in_place_type_t;
88
89  using std::in_place_index;
90  using std::in_place_index_t;
91
92  // [depr.relops]
93  namespace rel_ops {
94    using rel_ops::operator!=;
95    using rel_ops::operator>;
96    using rel_ops::operator<=;
97    using rel_ops::operator>=;
98  } // namespace rel_ops
99} // namespace std
100