| /llvm-project-15.0.7/libcxx/include/ |
| H A D | concepts | 17 // [concept.same], concept same_as 21 // [concept.derived], concept derived_from 25 // [concept.convertible], concept convertible_to 29 // [concept.commonref], concept common_reference_with 33 // [concept.common], concept common_with 47 // [concept.assignable], concept assignable_from 51 // [concept.swappable], concept swappable 62 // [concept.destructible], concept destructible 105 // [concept.invocable], concept invocable 113 // [concept.predicate], concept predicate [all …]
|
| H A D | iterator | 47 // [iterator.concept.readable], concept indirectly_readable 55 // [iterator.concept.writable], concept indirectly_writable 59 // [iterator.concept.winc], concept weakly_incrementable 63 // [iterator.concept.inc], concept incrementable 67 // [iterator.concept.iterator], concept input_or_output_iterator 71 // [iterator.concept.sentinel], concept sentinel_for 75 // [iterator.concept.sizedsentinel], concept sized_sentinel_for 82 // [iterator.concept.input], concept input_iterator 86 // [iterator.concept.output], concept output_iterator 90 // [iterator.concept.forward], concept forward_iterator [all …]
|
| /llvm-project-15.0.7/clang/test/Parser/ |
| H A D | cxx2a-concept-declaration.cpp | 8 template<concept T> concept D1 = true; 12 template<template<typename> concept T> concept D2 = true; 34 template<typename T> concept C4 = true; 44 template<typename T> concept C5 = true; 52 template<typename T> concept bool C7 = true; 55 template<> concept C8 = false; 58 template<> concept C7<int> = false; 61 template<typename T> concept N::C9 = false; 67 template<typename T> concept A::C10 = false; 82 template<typename T> concept C17 = T{}; [all …]
|
| H A D | cxx2a-constrained-template-param.cpp | 6 concept C1 = true; 15 concept C2 = true; 33 concept C1 = true; 47 concept C1 = true;
|
| /llvm-project-15.0.7/clang/test/CXX/expr/expr.prim/expr.prim.id/ |
| H A D | p3.cpp | 29 concept C4 = U::add(1, 2) == 3; 42 concept Same = is_same_v<T, U>; 59 concept IsEven = (x % 2) == 0; 83 concept True = true; 86 concept A = True<T> || T::value; 89 concept B = (True<T> || T::value); 98 concept E = T::value || True<T>; 101 concept F = (T::value || True<T>); 110 concept I = T::value; 159 concept Large = sizeof(T) > 100; [all …]
|
| /llvm-project-15.0.7/clang/test/SemaTemplate/ |
| H A D | concepts.cpp | 4 template<typename T> concept True = true; 6 template<typename ...T> concept AllTrue2 = (True<T> && ...); 11 template<typename ...T> concept AllAddable1 = requires(T ...t) { (void(t + 1), ...); }; 13 template<typename ...T> concept AllAddable3 = (requires(T t) { (t + 1); } && ...); 16 template<typename ...T> concept AllAddable6 = (requires { (T() + 1); } && ...); 28 template<class> concept C = true; // expected-note 2{{here}} 63 template<typename T> concept C = true; 159 template <typename T> concept foo = true; 160 template <typename T> concept foo2 = foo<T> && true; 167 template<typename> concept C = false; [all …]
|
| H A D | pr52909.cpp | 5 template <class> concept C = true; 13 concept Beginable = requires (T t) { 25 template<class T> concept True = B<T>; 40 template<class> concept True = true; 42 template<class T> concept C = requires { 57 template<class> concept True = true; 59 template<class T> concept C = requires {
|
| H A D | subst-into-subst.cpp | 11 template<class T> concept A = true; 12 template<class T> concept B = sizeof(T) != 0; 13 template<class T> concept C = B<X<1, T>>; 19 template<class T> concept D = A<T> && B<X<1, T>>; 27 template<class T> concept E = A<T> && B<X<(int)'\1', T>>;
|
| /llvm-project-15.0.7/clang/test/CXX/temp/temp.constr/temp.constr.normal/ |
| H A D | p1.cpp | 3 template<typename T> concept True = true; 4 template<typename T> concept Foo = True<T*>; 5 template<typename T> concept Bar = Foo<T&>; 9 template<typename T> concept True2 = sizeof(T) >= 0; 10 template<typename T> concept Foo2 = True2<T*>; 12 template<typename T> concept Bar2 = Foo2<T&>; 22 concept C1 = ((sizeof(Args) >= 0) && ...); 25 concept C2 = C1<A, B...>; 44 concept C2 = C1<A, B...>; 57 concept C1 = ((Args >= 0) && ...); [all …]
|
| /llvm-project-15.0.7/libcxx/include/__iterator/ |
| H A D | concepts.h | 53 concept indirectly_writable = 69 concept weakly_incrementable = 82 concept incrementable = 99 concept sentinel_for = 108 concept sized_sentinel_for = 118 concept input_iterator = 126 concept output_iterator = 135 concept forward_iterator = 167 concept contiguous_iterator = 245 concept indirectly_movable = [all …]
|
| /llvm-project-15.0.7/libcxx/include/__ranges/ |
| H A D | concepts.h | 42 concept range = requires(_Tp& __t) { in requires() 48 concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>; 51 concept borrowed_range = range<_Range> && 73 concept sized_range = range<_Tp> && requires(_Tp& __t) { ranges::size(__t); }; in requires() 86 concept view = 92 concept __simple_view = 99 concept output_range = range<_Rp> && output_iterator<iterator_t<_Rp>, _Tp>; 102 concept forward_range = input_range<_Tp> && forward_iterator<iterator_t<_Tp>>; 108 concept random_access_range = 112 concept contiguous_range = [all …]
|
| /llvm-project-15.0.7/clang/test/Index/ |
| H A D | index-concepts.cpp | 31 concept Con1 = type_trait<T>::value; 41 concept ConWithLogicalAnd = Con1<T> && sizeof(T) > sizeFunc(); 58 concept ConInNamespace = sizeof(T) > 4; 63 concept ConTwoTemplateParams = ns::ConInNamespace<T1> && ConWithLogicalAnd<T2>; 126 concept ConWithRequires = requires(const T& x, ConcreteType value) { 147 concept ConWithCompRequires = requires { 168 concept ConWithTypeReq = requires { 178 concept ConWithNestedReq = requires {
|
| /llvm-project-15.0.7/clang/test/Modules/ |
| H A D | merge-concepts-redefinition-error.cpp | 28 concept ConflictingConcept = true; 31 concept same_as = __is_same(T, U); 33 template<class T> concept truec = true; 46 concept ConflictingConcept = true; // expected-error {{redefinition of concept 'ConflictingConcept'… 52 template<class T> concept var = false; // expected-error {{redefinition of 'var' as different kind … 55 template<class T> concept truec = true; // expected-error {{redefinition of 'truec'}}
|
| /llvm-project-15.0.7/clang/test/CodeCompletion/ |
| H A D | concepts.cpp | 1 template <typename T, typename U> concept convertible_to = true; 2 template <typename T, typename U> concept same_as = true; 3 template <typename T> concept integral = true; 6 concept W = requires(A a, B b) { 10 template <typename T> concept X = requires(T t) { 17 concept Y = requires(T t, U u) { t.yyy(u); }; 20 concept Z = requires(T t) {
|
| /llvm-project-15.0.7/clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/ |
| H A D | p6.cpp | 6 concept LargerThan = sizeof(T) > size; 12 concept Large = LargerThan<T, 1>; 17 concept SmallerThan = sizeof(T) < size; 19 concept Small = SmallerThan<T, 2>; 51 template <class T> concept True = true; 73 template <class T, class U> concept a = true; 76 template<class> concept d = true; 81 template <typename...> concept C = true;
|
| /llvm-project-15.0.7/libcxx/include/__concepts/ |
| H A D | arithmetic.h | 28 concept integral = is_integral_v<_Tp>; 31 concept signed_integral = integral<_Tp> && is_signed_v<_Tp>; 34 concept unsigned_integral = integral<_Tp> && !signed_integral<_Tp>; 37 concept floating_point = is_floating_point_v<_Tp>; 42 concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value; 44 concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value;
|
| H A D | constructible.h | 27 concept constructible_from = 33 concept __default_initializable = requires { ::new _Tp; }; 36 concept default_initializable = constructible_from<_Tp> && 41 concept move_constructible = 46 concept copy_constructible =
|
| /llvm-project-15.0.7/libcxx/include/__memory/ |
| H A D | concepts.h | 37 concept __nothrow_input_iterator = 43 concept __nothrow_sentinel_for = sentinel_for<_Sp, _Ip>; 46 concept __nothrow_input_range = 52 concept __nothrow_forward_iterator = 58 concept __nothrow_forward_range =
|
| /llvm-project-15.0.7/clang/test/CXX/temp/temp.constr/temp.constr.order/ |
| H A D | function-templates.cpp | 14 concept C1 = sizeof(T) >= 4; 26 concept C2 = sizeof(T) > 1 && sizeof(T) <= 8; 56 concept BiggerThan = sizeof(T) > sizeof(U); 59 concept BiggerThanInt = BiggerThan<T, int>; 74 concept C3 = true; 77 concept C4 = true && C3<T>;
|
| /llvm-project-15.0.7/clang/test/Lexer/ |
| H A D | cxx2a_keyword_as_cxx17.cpp | 3 #define concept constexpr bool macro 5 concept x = 0; 6 #undef concept 12 int concept = 0; // expected-warning {{'concept' is a keyword in C++20}}
|
| /llvm-project-15.0.7/clang/test/CXX/temp/temp.param/ |
| H A D | p10-2a.cpp | 4 concept C1 = sizeof(T) == 1; 15 concept C2 = sizeof(T) == 2; 29 concept C3 = (sizeof(T) + ...) == 12; 60 concept C4 = sizeof(T) == 4; 80 concept Same = is_same_v<T, U>; // expected-note {{because 'is_same_v<long, int>' evaluated to fals… 89 concept OneOf = (is_same_v<T, Ts> || ...);
|
| /llvm-project-15.0.7/clang/test/CXX/expr/expr.prim/expr.prim.req/ |
| H A D | compound-requirement.cpp | 86 concept Same = is_same_v<T, U>; 89 concept Large = sizeof(typename remove_reference<T>::type) >= 4; 125 concept IsEven = (T % 2) == 0; 143 template<typename T> concept C1 = 151 template<typename T, typename U> concept same_as = is_same_v<T, U>; 160 template<typename T> concept C2 = 183 template<typename T> concept C5 =
|
| /llvm-project-15.0.7/libcxx/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.cmp/ |
| H A D | sfinae.compile.pass.cpp | 60 template<class T> concept HasEqual = requires (T t) { t == t; }; 61 template<class T> concept HasNotEqual = requires (T t) { t != t; }; 62 template<class T> concept HasLess = requires (T t) { t < t; }; 63 template<class T> concept HasLessOrEqual = requires (T t) { t <= t; }; 64 template<class T> concept HasGreater = requires (T t) { t > t; }; 65 template<class T> concept HasGreaterOrEqual = requires (T t) { t >= t; }; 66 template<class T> concept HasSpaceship = requires (T t) { t <=> t; };
|
| /llvm-project-15.0.7/clang/test/CXX/temp/temp.constr/temp.constr.decl/ |
| H A D | p3.cpp | 9 concept Invalid = X<T>{}; 12 concept False = false; // expected-note{{because 'false' evaluated to false}} 15 concept True = true;
|
| /llvm-project-15.0.7/libcxx/test/std/ranges/range.adaptors/range.zip/ |
| H A D | begin.pass.cpp | 25 concept HasConstBegin = requires(const T& ct) { ct.begin(); }; 28 concept HasBegin = requires(T& t) { t.begin(); }; 31 concept HasConstAndNonConstBegin = 36 concept HasOnlyNonConstBegin = HasBegin<T> && ! 40 concept HasOnlyConstBegin = HasConstBegin<T> && !
|