/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/ranges.hpp File Reference

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/ranges.hpp File Reference#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/ranges.hpp File Reference
ranges.hpp File Reference
#include <iterator>
#include <type_traits>
#include <utility>
#include "ck/library/utility/iterator.hpp"

Go to the source code of this file.

Classes

struct  ck::ranges::is_range< T, typename >
 
struct  ck::ranges::is_range< T, std::void_t< decltype(std::begin(std::declval< T & >())), decltype(std::end(std::declval< T & >()))> >
 
struct  ck::ranges::is_sized_range< T, typename >
 
struct  ck::ranges::is_sized_range< T, std::void_t< decltype(std::size(std::declval< T & >()))> >
 

Namespaces

 ck
 
 ck::ranges
 

Typedefs

template<typename R >
using ck::ranges::iterator_t = decltype(std::begin(std::declval< R & >()))
 
template<typename R >
using ck::ranges::sentinel_t = decltype(std::end(std::declval< R & >()))
 
template<typename R >
using ck::ranges::range_size_t = decltype(std::size(std::declval< R & >()))
 
template<typename R >
using ck::ranges::range_difference_t = ck::iter_difference_t< ranges::iterator_t< R > >
 
template<typename R >
using ck::ranges::range_value_t = iter_value_t< ranges::iterator_t< R > >
 
template<typename R >
using ck::ranges::range_reference_t = iter_reference_t< ranges::iterator_t< R > >
 

Variables

template<typename T >
constexpr bool ck::ranges::is_range_v = is_range<T>::value