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