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 12*5f757f3fSDimitry Andric // [concepts.lang], language-related concepts 13*5f757f3fSDimitry Andric // [concept.same], concept same_as 14*5f757f3fSDimitry Andric using std::same_as; 15*5f757f3fSDimitry Andric 16*5f757f3fSDimitry Andric // [concept.derived], concept derived_from 17*5f757f3fSDimitry Andric using std::derived_from; 18*5f757f3fSDimitry Andric 19*5f757f3fSDimitry Andric // [concept.convertible], concept convertible_to 20*5f757f3fSDimitry Andric using std::convertible_to; 21*5f757f3fSDimitry Andric 22*5f757f3fSDimitry Andric // [concept.commonref], concept common_reference_with 23*5f757f3fSDimitry Andric using std::common_reference_with; 24*5f757f3fSDimitry Andric 25*5f757f3fSDimitry Andric // [concept.common], concept common_with 26*5f757f3fSDimitry Andric using std::common_with; 27*5f757f3fSDimitry Andric 28*5f757f3fSDimitry Andric // [concepts.arithmetic], arithmetic concepts 29*5f757f3fSDimitry Andric using std::floating_point; 30*5f757f3fSDimitry Andric using std::integral; 31*5f757f3fSDimitry Andric using std::signed_integral; 32*5f757f3fSDimitry Andric using std::unsigned_integral; 33*5f757f3fSDimitry Andric 34*5f757f3fSDimitry Andric // [concept.assignable], concept assignable_from 35*5f757f3fSDimitry Andric using std::assignable_from; 36*5f757f3fSDimitry Andric 37*5f757f3fSDimitry Andric // [concept.swappable], concept swappable 38*5f757f3fSDimitry Andric namespace ranges { 39*5f757f3fSDimitry Andric inline namespace __cpo { 40*5f757f3fSDimitry Andric using std::ranges::__cpo::swap; 41*5f757f3fSDimitry Andric } 42*5f757f3fSDimitry Andric } // namespace ranges 43*5f757f3fSDimitry Andric 44*5f757f3fSDimitry Andric using std::swappable; 45*5f757f3fSDimitry Andric using std::swappable_with; 46*5f757f3fSDimitry Andric 47*5f757f3fSDimitry Andric // [concept.destructible], concept destructible 48*5f757f3fSDimitry Andric using std::destructible; 49*5f757f3fSDimitry Andric 50*5f757f3fSDimitry Andric // [concept.constructible], concept constructible_from 51*5f757f3fSDimitry Andric using std::constructible_from; 52*5f757f3fSDimitry Andric 53*5f757f3fSDimitry Andric // [concept.default.init], concept default_initializable 54*5f757f3fSDimitry Andric using std::default_initializable; 55*5f757f3fSDimitry Andric 56*5f757f3fSDimitry Andric // [concept.moveconstructible], concept move_constructible 57*5f757f3fSDimitry Andric using std::move_constructible; 58*5f757f3fSDimitry Andric 59*5f757f3fSDimitry Andric // [concept.copyconstructible], concept copy_constructible 60*5f757f3fSDimitry Andric using std::copy_constructible; 61*5f757f3fSDimitry Andric 62*5f757f3fSDimitry Andric // [concepts.compare], comparison concepts 63*5f757f3fSDimitry Andric // [concept.equalitycomparable], concept equality_comparable 64*5f757f3fSDimitry Andric using std::equality_comparable; 65*5f757f3fSDimitry Andric using std::equality_comparable_with; 66*5f757f3fSDimitry Andric 67*5f757f3fSDimitry Andric // [concept.totallyordered], concept totally_ordered 68*5f757f3fSDimitry Andric using std::totally_ordered; 69*5f757f3fSDimitry Andric using std::totally_ordered_with; 70*5f757f3fSDimitry Andric 71*5f757f3fSDimitry Andric // [concepts.object], object concepts 72*5f757f3fSDimitry Andric using std::copyable; 73*5f757f3fSDimitry Andric using std::movable; 74*5f757f3fSDimitry Andric using std::regular; 75*5f757f3fSDimitry Andric using std::semiregular; 76*5f757f3fSDimitry Andric 77*5f757f3fSDimitry Andric // [concepts.callable], callable concepts 78*5f757f3fSDimitry Andric // [concept.invocable], concept invocable 79*5f757f3fSDimitry Andric using std::invocable; 80*5f757f3fSDimitry Andric 81*5f757f3fSDimitry Andric // [concept.regularinvocable], concept regular_invocable 82*5f757f3fSDimitry Andric using std::regular_invocable; 83*5f757f3fSDimitry Andric 84*5f757f3fSDimitry Andric // [concept.predicate], concept predicate 85*5f757f3fSDimitry Andric using std::predicate; 86*5f757f3fSDimitry Andric 87*5f757f3fSDimitry Andric // [concept.relation], concept relation 88*5f757f3fSDimitry Andric using std::relation; 89*5f757f3fSDimitry Andric 90*5f757f3fSDimitry Andric // [concept.equiv], concept equivalence_relation 91*5f757f3fSDimitry Andric using std::equivalence_relation; 92*5f757f3fSDimitry Andric 93*5f757f3fSDimitry Andric // [concept.strictweakorder], concept strict_weak_order 94*5f757f3fSDimitry Andric using std::strict_weak_order; 95*5f757f3fSDimitry Andric 96*5f757f3fSDimitry Andric} // namespace std 97