Add the initializes attribute inference (#117104)
[llvm-project.git] / libcxx / modules / std / concepts.inc
blob29f4e2788e9ab226e0a8be58bc3803aab306933e
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 //===----------------------------------------------------------------------===//
10 export namespace std {
12   // [concepts.lang], language-related concepts
13   // [concept.same], concept same_as
14   using std::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;
30   using std::integral;
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
38   namespace ranges {
39     inline namespace __cpo {
40       using std::ranges::__cpo::swap;
41     }
42   } // namespace ranges
44   using std::swappable;
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
72   using std::copyable;
73   using std::movable;
74   using std::regular;
75   using std::semiregular;
77   // [concepts.callable], callable concepts
78   // [concept.invocable], concept invocable
79   using std::invocable;
81   // [concept.regularinvocable], concept regular_invocable
82   using std::regular_invocable;
84   // [concept.predicate], concept predicate
85   using std::predicate;
87   // [concept.relation], concept relation
88   using std::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;
96 } // namespace std