Home
last modified time | relevance | path

Searched full:concept (Results 1 – 25 of 432) sorted by relevance

12345678910>>...18

/freebsd/contrib/llvm-project/libcxx/include/
H A Dconcepts17 // [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 Diterator47 // [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 Dranges33 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 Dconcepts.cppm
H A Diterator.cppm
/freebsd/contrib/llvm-project/libcxx/include/__iterator/
H A Dconcepts.h51 // [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 Dcpp17_iterator_concepts.h38 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 Diterator_traits.h51 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 Dconcepts.h47 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 Dmovable_box.h45 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 Daccess.h36 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 Dempty.h32 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 Dconstructible.h25 // [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 Darithmetic.h30 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 Drelation.h23 // [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 Dinvocable.h24 // [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 Dswappable.h38 // [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 Dequality_comparable.h26 // [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 Dtotally_ordered.h26 // [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 Dsame_as.h23 // [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 Dconcepts.h35 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 Dconcepts.h36 // 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 DASTConcept.h37 // 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 Dtuple_like_no_subrange.h49 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 Dthree_way_comparable.h31 concept __compares_as = same_as<common_comparison_category_t<_Tp, _Cat>, _Cat>;
34 concept three_way_comparable =
41 concept three_way_comparable_with =

12345678910>>...18