/freebsd/contrib/llvm-project/libcxx/include/ |
H A D | concepts | 17 // [concept.same], concept same_as 19 concept same_as = see below; 21 // [concept.derived], concept derived_from 23 concept derived_from = see below; 25 // [concept.convertible], concept convertible_to 27 concept convertible_to = see below; 29 // [concept.commonref], concept common_reference_with 31 concept common_reference_with = see below; 33 // [concept.common], concept common_with 35 concept common_with = see below; [all …]
|
H A D | iterator | 47 // [iterator.concept.readable], concept indirectly_readable 49 concept indirectly_readable = see below; // since C++20 55 // [iterator.concept.writable], concept indirectly_writable 57 concept indirectly_writable = see below; // since C++20 59 // [iterator.concept.winc], concept weakly_incrementable 61 concept weakly_incrementable = see below; // since C++20 63 // [iterator.concept.inc], concept incrementable 65 concept incrementable = see below; // since C++20 67 // [iterator.concept.iterator], concept input_or_output_iterator 69 concept input_or_output_iterator = see below; // since C++20 [all …]
|
H A D | ranges | 33 concept range = see below; 60 concept sized_range = ...; 69 concept view = ...; 73 concept output_range = see below; 76 concept input_range = see below; 79 concept forward_range = see below; 82 concept bidirectional_range = see below; 85 concept random_access_range = see below; 88 concept contiguous_range = see below; 91 concept common_range = see below; [all …]
|
/freebsd/contrib/llvm-project/libcxx/modules/std/ |
H A D | concepts.cppm |
|
H A D | iterator.cppm |
|
/freebsd/contrib/llvm-project/libcxx/include/__iterator/ |
H A D | concepts.h | 51 // [iterator.concept.readable] 53 concept __indirectly_readable_impl = 65 concept indirectly_readable = __indirectly_readable_impl<remove_cvref_t<_In>>; 70 // [iterator.concept.writable] 72 concept indirectly_writable = requires(_Out&& __o, _Tp&& __t) { in requires() 80 // [iterator.concept.winc] 82 concept __integer_like = integral<_Tp> && !same_as<_Tp, bool>; 85 concept __signed_integer_like = signed_integral<_Tp>; 88 concept weakly_incrementable = 98 // [iterator.concept.inc] [all …]
|
H A D | cpp17_iterator_concepts.h | 38 concept __cpp17_move_constructible = is_move_constructible_v<_Tp>; 41 concept __cpp17_copy_constructible = __cpp17_move_constructible<_Tp> && is_copy_constructible_v<_Tp… 44 concept __cpp17_move_assignable = requires(_Tp __lhs, _Tp __rhs) { in requires() 49 concept __cpp17_copy_assignable = __cpp17_move_assignable<_Tp> && requires(_Tp __lhs, _Tp __rhs) { in requires() 55 concept __cpp17_destructible = requires(_Tp __v) { __v.~_Tp(); }; in requires() 58 concept __cpp17_equality_comparable = requires(_Tp __lhs, _Tp __rhs) { in requires() 66 concept __cpp17_default_constructible = is_default_constructible_v<_Tp>; 69 concept __cpp17_iterator = 77 concept __cpp17_input_iterator = 93 concept __cpp17_output_iterator = __cpp17_iterator<_Iter> && requires(_Iter __iter, _WriteTo __writ… in requires() [all …]
|
H A D | iterator_traits.h | 51 concept __can_reference = requires { typename __with_reference<_Tp>; }; 54 concept __dereferenceable = requires(_Tp& __t) { in requires() 157 concept __cpp17_iterator = requires(_Ip __i) { in requires() 164 concept __cpp17_input_iterator = __cpp17_iterator<_Ip> && equality_comparable<_Ip> && requires(_Ip … in requires() 173 concept __cpp17_forward_iterator = 182 concept __cpp17_bidirectional_iterator = __cpp17_forward_iterator<_Ip> && requires(_Ip __i) { in requires() 189 concept __cpp17_random_access_iterator = 203 concept __has_member_reference = requires { typename _Ip::reference; }; 206 concept __has_member_pointer = requires { typename _Ip::pointer; }; 209 concept __has_member_iterator_category = requires { typename _Ip::iterator_category; }; [all …]
|
/freebsd/contrib/llvm-project/libcxx/include/__ranges/ |
H A D | concepts.h | 47 concept range = requires(_Tp& __t) { in requires() 53 concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>; 56 concept borrowed_range = 81 concept sized_range = range<_Tp> && requires(_Tp& __t) { ranges::size(__t); }; in requires() 94 concept view = range<_Tp> && movable<_Tp> && enable_view<_Tp>; 97 concept __simple_view = 103 concept output_range = range<_Rp> && output_iterator<iterator_t<_Rp>, _Tp>; 106 concept forward_range = input_range<_Tp> && forward_iterator<iterator_t<_Tp>>; 109 concept bidirectional_range = forward_range<_Tp> && bidirectional_iterator<iterator_t<_Tp>>; 112 concept random_access_rang [all...] |
H A D | movable_box.h | 45 concept __movable_box_object = 127 concept __doesnt_need_empty_state = 147 concept __can_use_no_unique_address = (copy_constructible<_Tp> ? copyable<_Tp> : movable<_Tp>); 152 concept __doesnt_need_empty_state_for_copy = copyable<_Tp> || is_nothrow_copy_constructible_v<_Tp>; 155 concept __doesnt_need_empty_state_for_move = movable<_Tp> || is_nothrow_move_constructible_v<_Tp>; 158 concept __doesnt_need_empty_state = __doesnt_need_empty_state_for_copy<_Tp> && __doesnt_need_empty_… 161 concept __can_use_no_unique_address = copyable<_Tp>;
|
H A D | access.h | 36 concept __can_borrow = is_lvalue_reference_v<_Tp> || enable_borrowed_range<remove_cvref_t<_Tp>>; 44 concept __member_begin = __can_borrow<_Tp> && requires(_Tp&& __t) { in requires() 51 concept __unqualified_begin = 106 concept __member_end = __can_borrow<_Tp> && requires(_Tp&& __t) { in requires() 114 concept __unqualified_end =
|
H A D | empty.h | 32 concept __member_empty = requires(_Tp&& __t) { bool(__t.empty()); }; in requires() 35 concept __can_invoke_size = !__member_empty<_Tp> && requires(_Tp&& __t) { ranges::size(__t); }; 38 concept __can_compare_begin_end = !__member_empty<_Tp> && !__can_invoke_size<_Tp> && requires(_Tp&&…
|
/freebsd/contrib/llvm-project/libcxx/include/__concepts/ |
H A D | constructible.h | 25 // [concept.constructible] 27 concept constructible_from = destructible<_Tp> && is_constructible_v<_Tp, _Args...>; 29 // [concept.default.init] 32 concept __default_initializable = requires { ::new _Tp; }; 35 concept default_initializable = constructible_from<_Tp> && requires { _Tp{}; } && __default_initial… 37 // [concept.moveconstructible] 39 concept move_constructible = constructible_from<_Tp, _Tp> && convertible_to<_Tp, _Tp>; 41 // [concept.copyconstructible] 44 concept copy_constructible =
|
H A D | arithmetic.h | 30 concept integral = is_integral_v<_Tp>; 33 concept signed_integral = integral<_Tp> && is_signed_v<_Tp>; 36 concept unsigned_integral = integral<_Tp> && !signed_integral<_Tp>; 39 concept floating_point = is_floating_point_v<_Tp>; 41 // Concept helpers for the internal type traits for the fundamental types. 44 concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value; 47 concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value; 50 concept __libcpp_integer = __libcpp_unsigned_integer<_Tp> || __libcpp_signed_integer<_Tp>;
|
H A D | relation.h | 23 // [concept.relation] 26 concept relation = 29 // [concept.equiv] 32 concept equivalence_relation = relation<_Rp, _Tp, _Up>; 34 // [concept.strictweakorder] 37 concept strict_weak_order = relation<_Rp, _Tp, _Up>;
|
H A D | invocable.h | 24 // [concept.invocable] 27 concept invocable = requires(_Fn&& __fn, _Args&&... __args) { in requires() 31 // [concept.regular.invocable] 34 concept regular_invocable = invocable<_Fn, _Args...>;
|
H A D | swappable.h | 38 // [concept.swappable] 48 concept __unqualified_swappable_with = 59 concept __swappable_arrays = 68 concept __exchangeable = 107 concept swappable = requires(_Tp& __a, _Tp& __b) { ranges::swap(__a, __b); }; in requires() 110 concept swappable_with = common_reference_with<_Tp, _Up> && requires(_Tp&& __t, _Up&& __u) { in requires()
|
H A D | equality_comparable.h | 26 // [concept.equalitycomparable] 29 concept __weakly_equality_comparable_with = 38 concept equality_comparable = __weakly_equality_comparable_with<_Tp, _Tp>; 42 concept equality_comparable_with =
|
H A D | totally_ordered.h | 26 // [concept.totallyordered] 29 concept __partially_ordered_with = requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_r… in requires() 41 concept totally_ordered = equality_comparable<_Tp> && __partially_ordered_with<_Tp, _Tp>; 45 concept totally_ordered_with =
|
H A D | same_as.h | 23 // [concept.same] 26 concept __same_as_impl = _IsSame<_Tp, _Up>::value; 29 concept same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;
|
/freebsd/contrib/llvm-project/libcxx/include/__format/ |
H A D | concepts.h | 35 concept __fmt_char_type = 43 // output_iterator. This iterator is a minimal iterator to test the concept. 50 concept __formattable_with = 62 concept __formattable = 67 concept formattable = __formattable<_Tp, _CharT>; 69 // [tuple.like] defines a tuple-like exposition only concept. This concept is 70 // not related to that. Therefore it uses a different name for the concept. 72 // TODO FMT Add a test to validate we fail when using that concept after P2165 75 concept __fmt_pair_like =
|
/freebsd/contrib/llvm-project/libcxx/include/__memory/ |
H A D | concepts.h | 36 // This concept ensures that uninitialized algorithms can construct an object 39 concept __nothrow_input_iterator = 44 concept __nothrow_sentinel_for = sentinel_for<_Sp, _Ip>; 47 concept __nothrow_input_range = 51 concept __nothrow_forward_iterator = 55 concept __nothrow_forward_range = __nothrow_input_range<_Rp> && __nothrow_forward_iterator<iterator_t<_Rp>>;
|
/freebsd/contrib/llvm-project/clang/include/clang/AST/ |
H A D | ASTConcept.h | 37 // constrained entity or a concept). 114 /// A reference to a concept and its template args, as it appears in the code. 126 // \brief The optional nested name specifier used when naming the concept. 130 /// concept. 133 /// \brief The concept name used. 138 /// Can differ from NamedConcept when, for example, the concept was found 142 /// \brief The concept named. 146 /// concept. 209 /// concept reference (they might not be in type constraints, for example) 249 // FIXME: Instead of using these concept related functions the callers should
|
/freebsd/contrib/llvm-project/libcxx/include/__tuple/ |
H A D | tuple_like_no_subrange.h | 49 concept __tuple_like_no_subrange = __tuple_like_no_subrange_impl<remove_cvref_t<_Tp>>; 52 // `ranges::subrange`. This is more useful than the pair-like concept in the standard because every… 55 concept __pair_like_no_subrange = __tuple_like_no_subrange<_Tp> && tuple_size<remove_cvref_t<_Tp>>:…
|
/freebsd/contrib/llvm-project/libcxx/include/__compare/ |
H A D | three_way_comparable.h | 31 concept __compares_as = same_as<common_comparison_category_t<_Tp, _Cat>, _Cat>; 34 concept three_way_comparable = 41 concept three_way_comparable_with =
|