2 //===----------------------------------------------------------------------===//
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
8 //===----------------------------------------------------------------------===//
10 export namespace std {
12 // [concepts.lang], language-related concepts
13 // [concept.same], concept same_as
16 // [concept.derived], concept derived_from
17 using std::derived_from;
19 // [concept.convertible], concept convertible_to
20 using std::convertible_to;
22 // [concept.commonref], concept common_reference_with
23 using std::common_reference_with;
25 // [concept.common], concept common_with
26 using std::common_with;
28 // [concepts.arithmetic], arithmetic concepts
29 using std::floating_point;
31 using std::signed_integral;
32 using std::unsigned_integral;
34 // [concept.assignable], concept assignable_from
35 using std::assignable_from;
37 // [concept.swappable], concept swappable
39 inline namespace __cpo {
40 using std::ranges::__cpo::swap;
45 using std::swappable_with;
47 // [concept.destructible], concept destructible
48 using std::destructible;
50 // [concept.constructible], concept constructible_from
51 using std::constructible_from;
53 // [concept.default.init], concept default_initializable
54 using std::default_initializable;
56 // [concept.moveconstructible], concept move_constructible
57 using std::move_constructible;
59 // [concept.copyconstructible], concept copy_constructible
60 using std::copy_constructible;
62 // [concepts.compare], comparison concepts
63 // [concept.equalitycomparable], concept equality_comparable
64 using std::equality_comparable;
65 using std::equality_comparable_with;
67 // [concept.totallyordered], concept totally_ordered
68 using std::totally_ordered;
69 using std::totally_ordered_with;
71 // [concepts.object], object concepts
75 using std::semiregular;
77 // [concepts.callable], callable concepts
78 // [concept.invocable], concept invocable
81 // [concept.regularinvocable], concept regular_invocable
82 using std::regular_invocable;
84 // [concept.predicate], concept predicate
87 // [concept.relation], concept relation
90 // [concept.equiv], concept equivalence_relation
91 using std::equivalence_relation;
93 // [concept.strictweakorder], concept strict_weak_order
94 using std::strict_weak_order;