Range-v3
Range algorithms, views, and actions for the Standard Library
semiregular.hpp File Reference

Classes

struct  ranges::v3::semiregular< T >
 
struct  ranges::v3::semiregular< T & >
 
struct  ranges::v3::semiregular< T && >
 

Typedefs

template<typename T >
using ranges::v3::movesemiregular_t = meta::if_c< Movable< T >() &&DefaultConstructible< T >(), T, semiregular< T > >
 
template<typename T , bool IsConst = false>
using ranges::v3::semiregular_ref_or_val_t = meta::if_< SemiRegular< T >, meta::if_c< IsConst, T, reference_wrapper< T > >, reference_wrapper< meta::if_c< IsConst, semiregular< T > const, semiregular< T > >> >
 
template<typename T >
using ranges::v3::semiregular_t = meta::if_< SemiRegular< T >, T, semiregular< T > >
 

Functions

template<typename T >
auto ranges::v3::get (meta::id_t< semiregular< T >> &t) noexcept(noexcept(decltype(t.get())(t.get()))) -> decltype(t.get())
 
template<typename T >
auto ranges::v3::get (meta::id_t< semiregular< T >> const &t) noexcept(noexcept(decltype(t.get())(t.get()))) -> decltype(t.get())
 
template<typename T >
auto ranges::v3::get (meta::id_t< semiregular< T >> &&t) noexcept(noexcept(decltype(detail::move(t).get())(detail::move(t).get()))) -> decltype(detail::move(t).get())