VCCC  2024.05
VisualCamp Common C++ library
subrange.hpp File Reference

Go to the source code of this file.

Classes

class  subrange< I, S, K >
 
struct  enable_borrowed_range< subrange< I, S, K > >
 
struct  tuple_size< vccc::ranges::subrange< I, S, K > >
 
struct  tuple_element< 0, vccc::ranges::subrange< I, S, K > >
 
struct  tuple_element< 0, const vccc::ranges::subrange< I, S, K > >
 
struct  tuple_element< 1, vccc::ranges::subrange< I, S, K > >
 
struct  tuple_element< 1, const vccc::ranges::subrange< I, S, K > >
 

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 &&copyable< 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)