14#ifndef RANGES_V3_ACTION_CONCEPTS_HPP
15#define RANGES_V3_ACTION_CONCEPTS_HPP
26#include <range/v3/detail/prologue.hpp>
34 struct movable_input_iterator
36 using iterator_category = std::input_iterator_tag;
38 using difference_type = std::ptrdiff_t;
40 using reference = T &&;
42 movable_input_iterator() =
default;
43 movable_input_iterator & operator++();
44 movable_input_iterator operator++(
int);
45 bool operator==(movable_input_iterator
const &)
const;
46 bool operator!=(movable_input_iterator
const &)
const;
62 movable<uncvref_t<T>> &&
72 detail::movable_input_iterator<range_value_t<T>>,
73 detail::movable_input_iterator<range_value_t<T>>>
87 requires(C & c, C
const & cc)
89 c.reserve(ranges::size(c)),
92 concepts::requires_<same_as<
decltype(cc.capacity()),
93 decltype(ranges::size(c))>>,
94 concepts::requires_<same_as<
decltype(cc.max_size()),
95 decltype(ranges::size(c))>>
106 template<
typename C,
typename I>
114 template<
typename C,
typename I>
130 template(
typename T)(
132 std::true_type is_lvalue_container_like(T &)
noexcept
137 template(
typename T)(
145 template(
typename T)(
147 std::true_type is_lvalue_container_like(std::reference_wrapper<T>)
noexcept
152 template(
typename T)(
154 std::true_type is_lvalue_container_like(
ref_view<T>)
noexcept
160 using is_lvalue_container_like_t =
161 decltype(detail::is_lvalue_container_like(std::declval<T>()));
169 template(
typename T)(
171 implicitly_convertible_to<detail::is_lvalue_container_like_t<T>, std::true_type>
183#include <range/v3/detail/epilogue.hpp>
The container_ concept std::vector is a container, std::array is not.
The forward_range concept.
The lvalue_container_like_ concept.
The lvalue_container_like concept.
The random_access_range concept.
The random_access_reservable concept.
The reservable_with_assign_ concept.
The reservable_with_assign concept.
The semi_container concept std::array is a semi_container, native arrays are not.
not_c< B::type::value > not_
Logically negate the integral constant-wrapped Boolean parameter.
Definition meta.hpp:1357
Point operator*(double s, const Point &a)
Multiply point by scalar.
Definition shapes.h:250
Definition reference_wrapper.hpp:76