20 concept ArrayEnd = concepts::BoundedLanguageArray<meta::RemoveReference<T>>;
24 concepts::TagInvocable<EndFunction, T> &&
28 concept MemberEnd =
requires(T&& container) {
29 { util::forward<T>(container).end() } -> concepts::SentinelFor<meta::ContainerIterator<T>>;
36 (detail::ArrayEnd<T> || detail::CustomEnd<T> || detail::MemberEnd<T>) )
38 if constexpr (detail::ArrayEnd<T>) {
40 }
else if constexpr (detail::CustomEnd<T>) {
44#pragma clang diagnostic push
45#pragma clang diagnostic ignored "-Wunused-result"
49#pragma clang diagnostic pop
constexpr struct di::container::EnableBorrowedContainer enable_borrowed_container
constexpr auto end
Definition end.h:55
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto in_place_type
Definition in_place_type.h:12
Definition any_storable.h:9
constexpr auto operator()(T &&container) const
Definition end.h:37