scnlib  0.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scn::detail::ranges::_subrange::subrange< I, S, subrange_kind > Class Template Reference

#include <ranges.h>

Inheritance diagram for scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >:
scn::detail::ranges::view_interface< subrange< I, S, K > > scn::detail::ranges::view_base

Public Types

using iterator = I
 
using sentinel = S
 

Public Member Functions

 subrange ()=default
 
template<bool SS = _store_size, typename std::enable_if<!SS >::type * = nullptr>
SCN_CONSTEXPR14 subrange (I i, S s)
 
template<bool Dependent = true, subrange_kind KK = K, typename std::enable_if< KK==subrange_kind::sized >::type * = nullptr>
SCN_CONSTEXPR14 subrange (I i, S s, typename std::enable_if< Dependent, iter_difference_t< I >>::type n)
 
constexpr I begin () const noexcept
 
constexpr S end () const noexcept
 
SCN_NODISCARD constexpr bool empty () const noexcept
 
template<subrange_kind KK = K, typename std::enable_if< KK==subrange_kind::sized >::type * = nullptr>
constexpr iter_difference_t< I > size () const noexcept
 
- Public Member Functions inherited from scn::detail::ranges::view_interface< subrange< I, S, K > >
SCN_NODISCARD SCN_CONSTEXPR14 bool empty ()
 
SCN_NODISCARD constexpr bool empty () const
 
SCN_CONSTEXPR14 operator bool ()
 
constexpr operator bool () const
 
auto data () -> decltype(std::addressof(*::scn::detail::ranges::begin(static_cast< R & >(*this))))
 
auto data () const -> decltype(std::addressof(*::scn::detail::ranges::begin(static_cast< const R & >(*this))))
 
SCN_CONSTEXPR14 auto size () -> decltype(::scn::detail::ranges::end(static_cast< R & >(*this))-::scn::detail::ranges::begin(static_cast< R & >(*this)))
 
constexpr auto size () const -> decltype(::scn::detail::ranges::end(static_cast< const R & >(*this))-::scn::detail::ranges::begin(static_cast< const R & >(*this)))
 

Detailed Description

template<typename I, typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
class scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >

Definition at line 915 of file ranges.h.

Member Typedef Documentation

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
using scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::iterator = I

Definition at line 1097 of file ranges.h.

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
using scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::sentinel = S

Definition at line 1098 of file ranges.h.

Constructor & Destructor Documentation

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::subrange ( )
default
template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
template<bool SS = _store_size, typename std::enable_if<!SS >::type * = nullptr>
SCN_CONSTEXPR14 scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::subrange ( i,
s 
)
inline

Definition at line 1104 of file ranges.h.

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
template<bool Dependent = true, subrange_kind KK = K, typename std::enable_if< KK==subrange_kind::sized >::type * = nullptr>
SCN_CONSTEXPR14 scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::subrange ( i,
s,
typename std::enable_if< Dependent, iter_difference_t< I >>::type  n 
)
inline

Definition at line 1112 of file ranges.h.

Member Function Documentation

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
constexpr I scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::begin ( ) const
inlinenoexcept

Definition at line 1121 of file ranges.h.

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
SCN_NODISCARD constexpr bool scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::empty ( ) const
inlinenoexcept

Definition at line 1131 of file ranges.h.

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
constexpr S scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::end ( ) const
inlinenoexcept

Definition at line 1126 of file ranges.h.

template<typename I , typename S = I, subrange_kind = _default_subrange_kind<I, S>::value>
template<subrange_kind KK = K, typename std::enable_if< KK==subrange_kind::sized >::type * = nullptr>
constexpr iter_difference_t<I> scn::detail::ranges::_subrange::subrange< I, S, subrange_kind >::size ( ) const
inlinenoexcept

Definition at line 1139 of file ranges.h.


The documentation for this class was generated from the following file: