![]() |
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) |