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