xref: /freebsd/contrib/llvm-project/libcxx/modules/std/utility.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  // [utility.swap], swap
12*5f757f3fSDimitry Andric  using std::swap;
13*5f757f3fSDimitry Andric
14*5f757f3fSDimitry Andric  // [utility.exchange], exchange
15*5f757f3fSDimitry Andric  using std::exchange;
16*5f757f3fSDimitry Andric
17*5f757f3fSDimitry Andric  // [forward], forward/move
18*5f757f3fSDimitry Andric  using std::forward;
19*5f757f3fSDimitry Andric#if _LIBCPP_STD_VER >= 23
20*5f757f3fSDimitry Andric  using std::forward_like;
21*5f757f3fSDimitry Andric#endif
22*5f757f3fSDimitry Andric  using std::move;
23*5f757f3fSDimitry Andric  using std::move_if_noexcept;
24*5f757f3fSDimitry Andric
25*5f757f3fSDimitry Andric  // [utility.as.const], as_const
26*5f757f3fSDimitry Andric  using std::as_const;
27*5f757f3fSDimitry Andric
28*5f757f3fSDimitry Andric  // [declval], declval
29*5f757f3fSDimitry Andric  using std::declval;
30*5f757f3fSDimitry Andric
31*5f757f3fSDimitry Andric  // [utility.intcmp], integer comparison functions
32*5f757f3fSDimitry Andric  using std::cmp_equal;
33*5f757f3fSDimitry Andric  using std::cmp_not_equal;
34*5f757f3fSDimitry Andric
35*5f757f3fSDimitry Andric  using std::cmp_greater;
36*5f757f3fSDimitry Andric  using std::cmp_greater_equal;
37*5f757f3fSDimitry Andric  using std::cmp_less;
38*5f757f3fSDimitry Andric  using std::cmp_less_equal;
39*5f757f3fSDimitry Andric
40*5f757f3fSDimitry Andric  using std::in_range;
41*5f757f3fSDimitry Andric
42*5f757f3fSDimitry Andric#if _LIBCPP_STD_VER >= 23
43*5f757f3fSDimitry Andric  // [utility.underlying], to_underlying
44*5f757f3fSDimitry Andric  using std::to_underlying;
45*5f757f3fSDimitry Andric
46*5f757f3fSDimitry Andric  // [utility.unreachable], unreachable
47*5f757f3fSDimitry Andric  using std::unreachable;
48*5f757f3fSDimitry Andric#endif // _LIBCPP_STD_VER >= 23
49*5f757f3fSDimitry Andric
50*5f757f3fSDimitry Andric  // [intseq], compile-time integer sequences
51*5f757f3fSDimitry Andric  using std::index_sequence;
52*5f757f3fSDimitry Andric  using std::integer_sequence;
53*5f757f3fSDimitry Andric
54*5f757f3fSDimitry Andric  using std::make_index_sequence;
55*5f757f3fSDimitry Andric  using std::make_integer_sequence;
56*5f757f3fSDimitry Andric
57*5f757f3fSDimitry Andric  using std::index_sequence_for;
58*5f757f3fSDimitry Andric
59*5f757f3fSDimitry Andric  // [pairs], class template pair
60*5f757f3fSDimitry Andric  using std::pair;
61*5f757f3fSDimitry Andric
62*5f757f3fSDimitry Andric#if _LIBCPP_STD_VER >= 23
63*5f757f3fSDimitry Andric  using std::basic_common_reference;
64*5f757f3fSDimitry Andric  using std::common_type;
65*5f757f3fSDimitry Andric#endif
66*5f757f3fSDimitry Andric  // [pairs.spec], pair specialized algorithms
67*5f757f3fSDimitry Andric  using std::operator==;
68*5f757f3fSDimitry Andric  using std::operator<=>;
69*5f757f3fSDimitry Andric
70*5f757f3fSDimitry Andric  using std::make_pair;
71*5f757f3fSDimitry Andric
72*5f757f3fSDimitry Andric  // [pair.astuple], tuple-like access to pair
73*5f757f3fSDimitry Andric  using std::tuple_element;
74*5f757f3fSDimitry Andric  using std::tuple_size;
75*5f757f3fSDimitry Andric
76*5f757f3fSDimitry Andric  using std::get;
77*5f757f3fSDimitry Andric
78*5f757f3fSDimitry Andric  // [pair.piecewise], pair piecewise construction
79*5f757f3fSDimitry Andric  using std::piecewise_construct;
80*5f757f3fSDimitry Andric  using std::piecewise_construct_t;
81*5f757f3fSDimitry Andric
82*5f757f3fSDimitry Andric  // in-place construction
83*5f757f3fSDimitry Andric  using std::in_place;
84*5f757f3fSDimitry Andric  using std::in_place_t;
85*5f757f3fSDimitry Andric
86*5f757f3fSDimitry Andric  using std::in_place_type;
87*5f757f3fSDimitry Andric  using std::in_place_type_t;
88*5f757f3fSDimitry Andric
89*5f757f3fSDimitry Andric  using std::in_place_index;
90*5f757f3fSDimitry Andric  using std::in_place_index_t;
91*5f757f3fSDimitry Andric
92*5f757f3fSDimitry Andric  // [depr.relops]
93*5f757f3fSDimitry Andric  namespace rel_ops {
94*5f757f3fSDimitry Andric    using rel_ops::operator!=;
95*5f757f3fSDimitry Andric    using rel_ops::operator>;
96*5f757f3fSDimitry Andric    using rel_ops::operator<=;
97*5f757f3fSDimitry Andric    using rel_ops::operator>=;
98*5f757f3fSDimitry Andric  } // namespace rel_ops
99*5f757f3fSDimitry Andric} // namespace std
100