5 #ifndef VCCC_RANGES_VIEWS_TAKE_WHILE_VIEW_HPP_
6 #define VCCC_RANGES_VIEWS_TAKE_WHILE_VIEW_HPP_
40 template<
typename V,
typename Pred>
59 template<
bool AntiConst, std::enable_if_t<
conjunction<
64 : end_(
std::move(that.end_)), pred_(that.pred_) {}
97 template<
typename Dummy =
void, std::enable_if_t<vccc::conjunction<std::is_
void<Dummy>,
105 return std::move(base_);
108 constexpr
const Pred&
pred()
const {
112 template<
typename Dummy =
void, std::enable_if_t<vccc::conjunction<std::is_
void<Dummy>,
113 negation<simple_view<V>>
119 template<
typename Dummy =
void, std::enable_if_t<vccc::conjunction<std::is_
void<Dummy>,
121 indirect_unary_predicate<const Pred, iterator_t<const V>>
127 template<
typename Dummy =
void, std::enable_if_t<vccc::conjunction<std::is_
void<Dummy>,
128 negation<simple_view<V>>
134 template<
typename Dummy =
void, std::enable_if_t<vccc::conjunction<std::is_
void<Dummy>,
136 indirect_unary_predicate<const Pred, iterator_t<const V>>
147 #if __cplusplus >= 201703L
149 template<
typename R,
typename Pred>
Definition: take_while_view.hpp:49
constexpr friend bool operator==(const sentinel &y, const iterator_t< Base > &x)
Definition: take_while_view.hpp:79
constexpr sentinel_t< Base > base() const
Definition: take_while_view.hpp:66
constexpr sentinel(sentinel_t< Base > end, const Pred *pred)
Definition: take_while_view.hpp:56
constexpr sentinel(sentinel< AntiConst > that)
Definition: take_while_view.hpp:63
constexpr friend bool operator!=(const sentinel &y, const iterator_t< Base > &x)
Definition: take_while_view.hpp:83
constexpr friend bool operator==(const iterator_t< Base > &x, const sentinel &y)
Definition: take_while_view.hpp:70
constexpr friend bool operator!=(const iterator_t< Base > &x, const sentinel &y)
Definition: take_while_view.hpp:75
Definition: take_while_view.hpp:41
take_while_view()=default
constexpr V base() const &
Definition: take_while_view.hpp:100
VCCC_CONSTEXPR_AFTER_CXX17 auto end() const
Definition: take_while_view.hpp:138
constexpr take_while_view(V base, Pred pred)
Definition: take_while_view.hpp:94
constexpr const Pred & pred() const
Definition: take_while_view.hpp:108
constexpr V base() &&
Definition: take_while_view.hpp:104
VCCC_CONSTEXPR_AFTER_CXX17 auto end()
Definition: take_while_view.hpp:130
constexpr auto begin() const
Definition: take_while_view.hpp:123
constexpr auto begin()
Definition: take_while_view.hpp:115
#define VCCC_CONSTEXPR_AFTER_CXX17
Definition: constexpr.hpp:20
constexpr invoke_result_t< F, Args... > invoke(F &&f, Args &&... args) noexcept(is_nothrow_invocable< F, Args... >::value)
Definition: invoke.hpp:38
typename sentinel< R >::type sentinel_t
Definition: sentinel_t.hpp:29
typename ranges::iterator< T >::type iterator_t
Definition: iterator_t.hpp:32
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
constexpr VCCC_INLINE_OR_STATIC detail::end_niebloid end
returns a sentinel indicating the end of a range
Definition: end.hpp:120
std::integral_constant< bool, v > bool_constant
Definition: bool_constant.hpp:19
std::conditional_t< Const, const V, V > maybe_const
Definition: maybe_const.hpp:16
Definition: matrix.hpp:495
Definition: cxx20_rel_ops.hpp:17
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: conjunction.hpp:22
Models std::convertible_to
Definition: convertible_to.hpp:38
specifies that a callable type, when invoked with the result of dereferencing an indirectly_readable ...
Definition: indirect_unary_predicate.hpp:49
specifies that a range is a view, that is, it has constant time copy/move/assignment
Definition: view.hpp:31