Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/c++/v1/__cxx03/concepts is written in an unsupported language. File is not indexed.

0001 // -*- C++ -*-
0002 //===----------------------------------------------------------------------===//
0003 //
0004 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0005 // See https://llvm.org/LICENSE.txt for license information.
0006 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0007 //
0008 //===----------------------------------------------------------------------===//
0009 
0010 #ifndef _LIBCPP___CXX03_CONCEPTS
0011 #define _LIBCPP___CXX03_CONCEPTS
0012 
0013 /*
0014     concepts synopsis
0015 namespace std {
0016   // [concepts.lang], language-related concepts
0017   // [concept.same], concept same_as
0018   template<class T, class U>
0019     concept same_as = see below;
0020 
0021   // [concept.derived], concept derived_from
0022   template<class Derived, class Base>
0023     concept derived_from = see below;
0024 
0025   // [concept.convertible], concept convertible_to
0026   template<class From, class To>
0027     concept convertible_to = see below;
0028 
0029   // [concept.commonref], concept common_reference_with
0030   template<class T, class U>
0031     concept common_reference_with = see below;
0032 
0033   // [concept.common], concept common_with
0034   template<class T, class U>
0035     concept common_with = see below;
0036 
0037   // [concepts.arithmetic], arithmetic concepts
0038   template<class T>
0039     concept integral = see below;
0040   template<class T>
0041     concept signed_integral = see below;
0042   template<class T>
0043     concept unsigned_integral = see below;
0044   template<class T>
0045     concept floating_point = see below;
0046 
0047   // [concept.assignable], concept assignable_from
0048   template<class LHS, class RHS>
0049     concept assignable_from = see below;
0050 
0051   // [concept.swappable], concept swappable
0052   namespace ranges {
0053     inline namespace unspecified {
0054       inline constexpr unspecified swap = unspecified;
0055     }
0056   }
0057   template<class T>
0058     concept swappable = see below;
0059   template<class T, class U>
0060     concept swappable_with = see below;
0061 
0062   // [concept.destructible], concept destructible
0063   template<class T>
0064     concept destructible = see below;
0065 
0066   // [concept.constructible], concept constructible_from
0067   template<class T, class... Args>
0068     concept constructible_from = see below;
0069 
0070   // [concept.default.init], concept default_initializable
0071   template<class T>
0072     concept default_initializable = see below;
0073 
0074   // [concept.moveconstructible], concept move_constructible
0075   template<class T>
0076     concept move_constructible = see below;
0077 
0078   // [concept.copyconstructible], concept copy_constructible
0079   template<class T>
0080     concept copy_constructible = see below;
0081 
0082   // [concept.equalitycomparable], concept equality_comparable
0083   template<class T>
0084     concept equality_comparable = see below;
0085   template<class T, class U>
0086     concept equality_comparable_with = see below;
0087 
0088   // [concept.totallyordered], concept totally_ordered
0089   template<class T>
0090     concept totally_ordered = see below;
0091   template<class T, class U>
0092     concept totally_ordered_with = see below;
0093 
0094   // [concepts.object], object concepts
0095   template<class T>
0096     concept movable = see below;
0097   template<class T>
0098     concept copyable = see below;
0099   template<class T>
0100     concept semiregular = see below;
0101   template<class T>
0102     concept regular = see below;
0103 
0104   // [concepts.callable], callable concepts
0105   // [concept.invocable], concept invocable
0106   template<class F, class... Args>
0107     concept invocable = see below;
0108 
0109   // [concept.regularinvocable], concept regular_invocable
0110   template<class F, class... Args>
0111     concept regular_invocable = see below;
0112 
0113   // [concept.predicate], concept predicate
0114   template<class F, class... Args>
0115     concept predicate = see below;
0116 
0117   // [concept.relation], concept relation
0118   template<class R, class T, class U>
0119     concept relation = see below;
0120 
0121   // [concept.equiv], concept equivalence_relation
0122   template<class R, class T, class U>
0123     concept equivalence_relation = see below;
0124 
0125   // [concept.strictweakorder], concept strict_weak_order
0126   template<class R, class T, class U>
0127     concept strict_weak_order = see below;
0128 }
0129 
0130 */
0131 
0132 #include <__cxx03/__config>
0133 
0134 #if _LIBCPP_STD_VER >= 20
0135 #  include <__cxx03/__concepts/arithmetic.h>
0136 #  include <__cxx03/__concepts/assignable.h>
0137 #  include <__cxx03/__concepts/boolean_testable.h>
0138 #  include <__cxx03/__concepts/class_or_enum.h>
0139 #  include <__cxx03/__concepts/common_reference_with.h>
0140 #  include <__cxx03/__concepts/common_with.h>
0141 #  include <__cxx03/__concepts/constructible.h>
0142 #  include <__cxx03/__concepts/convertible_to.h>
0143 #  include <__cxx03/__concepts/copyable.h>
0144 #  include <__cxx03/__concepts/derived_from.h>
0145 #  include <__cxx03/__concepts/destructible.h>
0146 #  include <__cxx03/__concepts/different_from.h>
0147 #  include <__cxx03/__concepts/equality_comparable.h>
0148 #  include <__cxx03/__concepts/invocable.h>
0149 #  include <__cxx03/__concepts/movable.h>
0150 #  include <__cxx03/__concepts/predicate.h>
0151 #  include <__cxx03/__concepts/regular.h>
0152 #  include <__cxx03/__concepts/relation.h>
0153 #  include <__cxx03/__concepts/same_as.h>
0154 #  include <__cxx03/__concepts/semiregular.h>
0155 #  include <__cxx03/__concepts/swappable.h>
0156 #  include <__cxx03/__concepts/totally_ordered.h>
0157 #endif // _LIBCPP_STD_VER >= 20
0158 
0159 #include <__cxx03/version>
0160 
0161 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
0162 #  include <__cxx03/cstddef>
0163 #endif
0164 
0165 #if _LIBCPP_STD_VER <= 20 && !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES)
0166 #  include <__cxx03/type_traits>
0167 #endif
0168 
0169 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0170 #  pragma GCC system_header
0171 #endif
0172 
0173 #endif // _LIBCPP___CXX03_CONCEPTS