![]() |
VCCC
2024.05
VisualCamp Common C++ library
|
#include <cstddef>
#include <tuple>
#include <type_traits>
#include <utility>
#include "vccc/__core/nodiscard.hpp"
#include "vccc/__concepts/convertible_to.hpp"
#include "vccc/__concepts/copyable.hpp"
#include "vccc/__concepts/same_as.hpp"
#include "vccc/__iterator/advance.hpp"
#include "vccc/__iterator/bidirectional_iterator.hpp"
#include "vccc/__iterator/forward_iterator.hpp"
#include "vccc/__iterator/input_or_output_iterator.hpp"
#include "vccc/__iterator/iter_difference_t.hpp"
#include "vccc/__iterator/sized_sentinel_for.hpp"
#include "vccc/__iterator/sentinel_for.hpp"
#include "vccc/__ranges/borrowed_range.hpp"
#include "vccc/__ranges/begin.hpp"
#include "vccc/__ranges/enable_borrowed_range.hpp"
#include "vccc/__ranges/end.hpp"
#include "vccc/__ranges/iterator_t.hpp"
#include "vccc/__ranges/range.hpp"
#include "vccc/__ranges/sentinel_t.hpp"
#include "vccc/__ranges/size.hpp"
#include "vccc/__ranges/sized_range.hpp"
#include "vccc/__ranges/subrange_kind.hpp"
#include "vccc/__ranges/view_interface.hpp"
#include "vccc/__tuple/tuple_like.hpp"
#include "vccc/__type_traits/bool_constant.hpp"
#include "vccc/__type_traits/conjunction.hpp"
#include "vccc/__type_traits/disjunction.hpp"
#include "vccc/__type_traits/is_integer_like.hpp"
#include "vccc/__type_traits/negation.hpp"
#include "vccc/__type_traits/remove_cvref.hpp"
#include "vccc/__utility/cxx20_rel_ops.hpp"
#include "vccc/__utility/in_place.hpp"
Go to the source code of this file.
Namespaces | |
vccc | |
vccc::ranges | |
std | |
Functions | |
template<typename I , typename S , std::enable_if_t< conjunction< input_or_output_iterator< I >, sentinel_for< S, I >>::value, int > = 0> | |
constexpr subrange< I, S > | make_subrange (I i, S s) |
template<typename I , typename S , std::enable_if_t< conjunction< input_or_output_iterator< I >, sentinel_for< S, I >>::value, int > = 0> | |
constexpr subrange< I, S, subrange_kind::sized > | make_subrange (I i, S s, detail::make_unsigned_like_t< iter_difference_t< I >> n) |
template<typename R , std::enable_if_t< borrowed_range< R >::value, int > = 0> | |
constexpr subrange< iterator_t< R >, sentinel_t< R >,(sized_range< R >::value||sized_sentinel_for< sentinel_t< R >, iterator_t< R >>::value) ? subrange_kind::sized :subrange_kind::unsized > | make_subrange (R &&r) |
template<typename R , std::enable_if_t< borrowed_range< R >::value, int > = 0> | |
constexpr subrange< iterator_t< R >, sentinel_t< R >, subrange_kind::sized > | make_subrange (R &&r, detail::make_unsigned_like_t< range_difference_t< R >> n) |
template<std::size_t N, typename I , typename S , subrange_kind K, std::enable_if_t<((N==0 &©able< I >::value)||N==1), int > = 0> | |
constexpr auto | get (const subrange< I, S, K > &r) |
template<std::size_t N, typename I , typename S , subrange_kind K, std::enable_if_t<(N< 2), int > = 0> | |
constexpr auto | get (subrange< I, S, K > &&r) |