#include <tuple>
#include <type_traits>
#include <utility>
#include <meta/meta.hpp>
#include <concepts/concepts.hpp>
#include <range/v3/iterator/operations.hpp>
#include <range/v3/iterator/unreachable_sentinel.hpp>
#include <range/v3/range/access.hpp>
#include <range/v3/range/concepts.hpp>
#include <range/v3/range/dangling.hpp>
#include <range/v3/utility/get.hpp>
#include <range/v3/view/interface.hpp>
#include <range/v3/detail/prologue.hpp>
#include <range/v3/detail/epilogue.hpp>
Go to the source code of this file.
|
struct | ranges::subrange< I, S, K > |
|
struct | ranges::make_subrange_fn |
|
struct | std::tuple_size<::ranges::subrange< I, S, K > > |
|
struct | std::tuple_element< 0, ::ranges::subrange< I, S, K > > |
|
struct | std::tuple_element< 1, ::ranges::subrange< I, S, K > > |
|
|
enum class | subrange_kind : bool { unsized
, sized
} |
|
|
template<typename I , typename S > |
| ranges::subrange (I, S) -> subrange< I, S > |
|
| ranges::template (typename I, typename S)(AND sentinel_for< S |
| function template reverse
|
|
I | ranges::subrange (I, S, detail::iter_size_t< I >) -> subrange< I, S, subrange_kind::sized > |
|
| ranges::template (typename R)() split_view(R && |
|
| ranges::cpp20::template (typename I, typename S=I, subrange_kind K=static_cast< subrange_kind >(detail::is_sized_sentinel_< S, I >()))(AND sentinel_for< S |
|
I | ranges::cpp20::AND (K==subrange_kind::sized||!sized_sentinel_for< S, I >)) using subrange |
|
|
template<typename I , typename S , subrange_kind K> |
RANGES_INLINE_VAR constexpr bool | ranges::enable_borrowed_range< subrange< I, S, K > > = true |
|