xgboost
Public Types | Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
xgboost::common::detail::SpanIterator< SpanType, IsConst > Class Template Reference

#include <span.h>

Collaboration diagram for xgboost::common::detail::SpanIterator< SpanType, IsConst >:
Collaboration graph

Public Types

using iterator_category = std::random_access_iterator_tag
 
using value_type = typename SpanType::value_type
 
using difference_type = detail::ptrdiff_t
 
using reference = typename std::conditional< IsConst, const ElementType, ElementType >::type &
 
using pointer = typename std::add_pointer< reference >::type
 

Public Member Functions

constexpr SpanIterator ()=default
 
XGBOOST_DEVICE constexpr SpanIterator (const SpanType *_span, typename SpanType::index_type _idx) __span_noexcept
 
template<bool B, typename std::enable_if<!B &&IsConst >::type * = nullptr>
XGBOOST_DEVICE constexpr SpanIterator (const SpanIterator< SpanType, B > &other_) __span_noexcept
 
XGBOOST_DEVICE reference operator* () const
 
XGBOOST_DEVICE reference operator[] (difference_type n) const
 
XGBOOST_DEVICE pointer operator-> () const
 
XGBOOST_DEVICE SpanIteratoroperator++ ()
 
XGBOOST_DEVICE SpanIterator operator++ (int)
 
XGBOOST_DEVICE SpanIteratoroperator-- ()
 
XGBOOST_DEVICE SpanIterator operator-- (int)
 
XGBOOST_DEVICE SpanIterator operator+ (difference_type n) const
 
XGBOOST_DEVICE SpanIteratoroperator+= (difference_type n)
 
XGBOOST_DEVICE difference_type operator- (SpanIterator rhs) const
 
XGBOOST_DEVICE SpanIterator operator- (difference_type n) const
 
XGBOOST_DEVICE SpanIteratoroperator-= (difference_type n)
 

Public Attributes

friend SpanIterator< SpanType, true >
 

Protected Attributes

const SpanType * span_ { nullptr }
 
SpanType::index_type index_ { 0 }
 

Friends

XGBOOST_DEVICE constexpr friend bool operator== (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 
XGBOOST_DEVICE constexpr friend bool operator!= (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 
XGBOOST_DEVICE constexpr friend bool operator< (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 
XGBOOST_DEVICE constexpr friend bool operator<= (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 
XGBOOST_DEVICE constexpr friend bool operator> (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 
XGBOOST_DEVICE constexpr friend bool operator>= (SpanIterator _lhs, SpanIterator _rhs) __span_noexcept
 

Member Typedef Documentation

◆ difference_type

template<typename SpanType, bool IsConst>
using xgboost::common::detail::SpanIterator< SpanType, IsConst >::difference_type = detail::ptrdiff_t

◆ iterator_category

template<typename SpanType, bool IsConst>
using xgboost::common::detail::SpanIterator< SpanType, IsConst >::iterator_category = std::random_access_iterator_tag

◆ pointer

template<typename SpanType, bool IsConst>
using xgboost::common::detail::SpanIterator< SpanType, IsConst >::pointer = typename std::add_pointer<reference>::type

◆ reference

template<typename SpanType, bool IsConst>
using xgboost::common::detail::SpanIterator< SpanType, IsConst >::reference = typename std::conditional< IsConst, const ElementType, ElementType>::type&

◆ value_type

template<typename SpanType, bool IsConst>
using xgboost::common::detail::SpanIterator< SpanType, IsConst >::value_type = typename SpanType::value_type

Constructor & Destructor Documentation

◆ SpanIterator() [1/3]

template<typename SpanType, bool IsConst>
constexpr xgboost::common::detail::SpanIterator< SpanType, IsConst >::SpanIterator ( )
default

◆ SpanIterator() [2/3]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr xgboost::common::detail::SpanIterator< SpanType, IsConst >::SpanIterator ( const SpanType *  _span,
typename SpanType::index_type  _idx 
)
inline

◆ SpanIterator() [3/3]

template<typename SpanType, bool IsConst>
template<bool B, typename std::enable_if<!B &&IsConst >::type * = nullptr>
XGBOOST_DEVICE constexpr xgboost::common::detail::SpanIterator< SpanType, IsConst >::SpanIterator ( const SpanIterator< SpanType, B > &  other_)
inline

Member Function Documentation

◆ operator*()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE reference xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator* ( ) const
inline

◆ operator+()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator+ ( difference_type  n) const
inline

◆ operator++() [1/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator& xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator++ ( int  )
inline

◆ operator+=()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator& xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator+= ( difference_type  n)
inline

◆ operator-() [1/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE difference_type xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator- ( SpanIterator< SpanType, IsConst >  rhs) const
inline

◆ operator-() [2/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator- ( difference_type  n) const
inline

◆ operator--() [1/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator& xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator-- ( int  )
inline

◆ operator-=()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE SpanIterator& xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator-= ( difference_type  n)
inline

◆ operator->()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE pointer xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator-> ( ) const
inline

◆ operator[]()

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE reference xgboost::common::detail::SpanIterator< SpanType, IsConst >::operator[] ( difference_type  n) const
inline

Friends And Related Function Documentation

◆ operator!=

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator!= ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

◆ operator<

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator< ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

◆ operator<=

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator<= ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

◆ operator==

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator== ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

◆ operator>

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator> ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

◆ operator>=

template<typename SpanType, bool IsConst>
XGBOOST_DEVICE constexpr friend bool operator>= ( SpanIterator< SpanType, IsConst >  _lhs,
SpanIterator< SpanType, IsConst >  _rhs 
)
friend

Member Data Documentation

◆ index_

template<typename SpanType, bool IsConst>
SpanType::index_type xgboost::common::detail::SpanIterator< SpanType, IsConst >::index_ { 0 }
protected

◆ span_

template<typename SpanType, bool IsConst>
const SpanType* xgboost::common::detail::SpanIterator< SpanType, IsConst >::span_ { nullptr }
protected

◆ SpanIterator< SpanType, true >

template<typename SpanType, bool IsConst>
friend xgboost::common::detail::SpanIterator< SpanType, IsConst >::SpanIterator< SpanType, true >

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