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 // [func.invoke], invoke 12 using std::invoke; 13#if _LIBCPP_STD_VER >= 23 14 using std::invoke_r; 15#endif 16 17 // [refwrap], reference_wrapper 18 using std::reference_wrapper; 19 20 using std::cref; 21 using std::ref; 22 23 // [arithmetic.operations], arithmetic operations 24 using std::divides; 25 using std::minus; 26 using std::modulus; 27 using std::multiplies; 28 using std::negate; 29 using std::plus; 30 // [comparisons], comparisons 31 using std::equal_to; 32 using std::greater; 33 using std::greater_equal; 34 using std::less; 35 using std::less_equal; 36 using std::not_equal_to; 37 38 // [comparisons.three.way], class compare_three_way 39 using std::compare_three_way; 40 41 // [logical.operations], logical operations 42 using std::logical_and; 43 using std::logical_not; 44 using std::logical_or; 45 46 // [bitwise.operations], bitwise operations 47 using std::bit_and; 48 using std::bit_not; 49 using std::bit_or; 50 using std::bit_xor; 51 52 // [func.identity], identity 53 using std::identity; 54 55 // [func.not.fn], function template not_fn 56 using std::not_fn; 57 58 // [func.bind.partial], function templates bind_front and bind_back 59 using std::bind_front; 60#if _LIBCPP_STD_VER >= 23 61 using std::bind_back; 62#endif 63 64 // [func.bind], bind 65 using std::is_bind_expression; 66 using std::is_bind_expression_v; 67 using std::is_placeholder; 68 using std::is_placeholder_v; 69 70 using std::bind; 71 72 namespace placeholders { 73 // M is the implementation-defined number of placeholders 74 using std::placeholders::_1; 75 using std::placeholders::_10; 76 using std::placeholders::_2; 77 using std::placeholders::_3; 78 using std::placeholders::_4; 79 using std::placeholders::_5; 80 using std::placeholders::_6; 81 using std::placeholders::_7; 82 using std::placeholders::_8; 83 using std::placeholders::_9; 84 } // namespace placeholders 85 86 // [func.memfn], member function adaptors 87 using std::mem_fn; 88 89 // [func.wrap], polymorphic function wrappers 90 using std::bad_function_call; 91 92 using std::function; 93 94 using std::swap; 95 96 using std::operator==; 97 98 // [func.wrap.move], move only wrapper 99 // using std::move_only_function; 100 101 // [func.search], searchers 102 using std::default_searcher; 103 104 using std::boyer_moore_searcher; 105 106 using std::boyer_moore_horspool_searcher; 107 108 // [unord.hash], class template hash 109 using std::hash; 110 111 namespace ranges { 112 // [range.cmp], concept-constrained comparisons 113 using std::ranges::equal_to; 114 using std::ranges::greater; 115 using std::ranges::greater_equal; 116 using std::ranges::less; 117 using std::ranges::less_equal; 118 using std::ranges::not_equal_to; 119 } // namespace ranges 120} // namespace std 121