The Battle for Wesnoth  1.19.10+dev
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
boost::span< T, E > Class Template Reference

#include <span.hpp>

Public Types

typedef T element_type
 
typedef std::remove_cv< T >::type value_type
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t difference_type
 
typedef T * pointer
 
typedef const T * const_pointer
 
typedef T & reference
 
typedef const T & const_reference
 
typedef T * iterator
 
typedef const T * const_iterator
 
typedef std::reverse_iterator< T * > reverse_iterator
 
typedef std::reverse_iterator< const T * > const_reverse_iterator
 

Public Member Functions

template<std::size_t N = E, typename std::enable_if< N==dynamic_extent||N==0, int >::type = 0>
constexpr span () noexcept
 
template<class I , typename std::enable_if< E==dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr span (I *f, size_type c)
 
template<class I , typename std::enable_if< E !=dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr span (I *f, size_type c)
 
template<class I , class L , typename std::enable_if< E==dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr span (I *f, L *l)
 
template<class I , class L , typename std::enable_if< E !=dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr span (I *f, L *l)
 
template<std::size_t N, typename std::enable_if< detail::span_capacity< E, N >::value, int >::type = 0>
constexpr span (typename std::enable_if< true, T >::type(&a)[N]) noexcept
 
template<class U , std::size_t N, typename std::enable_if< detail::span_compatible< T, E, U, N >::value, int >::type = 0>
constexpr span (std::array< U, N > &a) noexcept
 
template<class U , std::size_t N, typename std::enable_if< detail::span_compatible< T, E, const U, N >::value, int >::type = 0>
constexpr span (const std::array< U, N > &a) noexcept
 
template<class R , typename std::enable_if< E==dynamic_extent &&detail::span_is_range< R, T >::value, int >::type = 0>
constexpr span (R &&r) noexcept(noexcept(boost::data(r)) &&noexcept(r.size()))
 
template<class R , typename std::enable_if< E !=dynamic_extent &&detail::span_is_range< R, T >::value, int >::type = 0>
constexpr span (R &&r) noexcept(noexcept(boost::data(r)) &&noexcept(r.size()))
 
template<class U , std::size_t N, typename std::enable_if< detail::span_implicit< E, N >::value &&detail::span_copyable< T, E, U, N >::value, int >::type = 0>
constexpr span (const span< U, N > &s) noexcept
 
template<class U , std::size_t N, typename std::enable_if<!detail::span_implicit< E, N >::value &&detail::span_copyable< T, E, U, N >::value, int >::type = 0>
constexpr span (const span< U, N > &s) noexcept
 
template<std::size_t C>
constexpr span< T, C > first () const
 
template<std::size_t C>
constexpr span< T, C > last () const
 
template<std::size_t O, std::size_t C = dynamic_extent>
constexpr std::enable_if< C==dynamic_extent, span< T, detail::span_sub< E, O >::value > >::type subspan () const
 
template<std::size_t O, std::size_t C = dynamic_extent>
constexpr std::enable_if< C !=dynamic_extent, span< T, C > >::type subspan () const
 
constexpr span< T, dynamic_extentfirst (size_type c) const
 
constexpr span< T, dynamic_extentlast (size_type c) const
 
constexpr span< T, dynamic_extentsubspan (size_type o, size_type c=dynamic_extent) const
 
constexpr size_type size () const noexcept
 
constexpr size_type size_bytes () const noexcept
 
constexpr bool empty () const noexcept
 
constexpr reference operator[] (size_type i) const
 
constexpr reference front () const
 
constexpr reference back () const
 
constexpr pointer data () const noexcept
 
constexpr iterator begin () const noexcept
 
constexpr iterator end () const noexcept
 
constexpr reverse_iterator rbegin () const noexcept
 
constexpr reverse_iterator rend () const noexcept
 
constexpr const_iterator cbegin () const noexcept
 
constexpr const_iterator cend () const noexcept
 
constexpr const_reverse_iterator crbegin () const noexcept
 
constexpr const_reverse_iterator crend () const noexcept
 

Static Public Attributes

static constexpr std::size_t extent = E
 

Private Attributes

detail::span_store< T, E > s_
 

Detailed Description

template<class T, std::size_t E>
class boost::span< T, E >

Definition at line 224 of file span.hpp.

Member Typedef Documentation

◆ const_iterator

template<class T , std::size_t E>
typedef const T* boost::span< T, E >::const_iterator

Definition at line 235 of file span.hpp.

◆ const_pointer

template<class T , std::size_t E>
typedef const T* boost::span< T, E >::const_pointer

Definition at line 231 of file span.hpp.

◆ const_reference

template<class T , std::size_t E>
typedef const T& boost::span< T, E >::const_reference

Definition at line 233 of file span.hpp.

◆ const_reverse_iterator

template<class T , std::size_t E>
typedef std::reverse_iterator<const T*> boost::span< T, E >::const_reverse_iterator

Definition at line 237 of file span.hpp.

◆ difference_type

template<class T , std::size_t E>
typedef std::ptrdiff_t boost::span< T, E >::difference_type

Definition at line 229 of file span.hpp.

◆ element_type

template<class T , std::size_t E>
typedef T boost::span< T, E >::element_type

Definition at line 226 of file span.hpp.

◆ iterator

template<class T , std::size_t E>
typedef T* boost::span< T, E >::iterator

Definition at line 234 of file span.hpp.

◆ pointer

template<class T , std::size_t E>
typedef T* boost::span< T, E >::pointer

Definition at line 230 of file span.hpp.

◆ reference

template<class T , std::size_t E>
typedef T& boost::span< T, E >::reference

Definition at line 232 of file span.hpp.

◆ reverse_iterator

template<class T , std::size_t E>
typedef std::reverse_iterator<T*> boost::span< T, E >::reverse_iterator

Definition at line 236 of file span.hpp.

◆ size_type

template<class T , std::size_t E>
typedef std::size_t boost::span< T, E >::size_type

Definition at line 228 of file span.hpp.

◆ value_type

template<class T , std::size_t E>
typedef std::remove_cv<T>::type boost::span< T, E >::value_type

Definition at line 227 of file span.hpp.

Constructor & Destructor Documentation

◆ span() [1/12]

template<class T , std::size_t E>
template<std::size_t N = E, typename std::enable_if< N==dynamic_extent||N==0, int >::type = 0>
constexpr boost::span< T, E >::span ( )
inlineconstexprnoexcept

Definition at line 243 of file span.hpp.

◆ span() [2/12]

template<class T , std::size_t E>
template<class I , typename std::enable_if< E==dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( I *  f,
size_type  c 
)
inlineconstexpr

Definition at line 249 of file span.hpp.

◆ span() [3/12]

template<class T , std::size_t E>
template<class I , typename std::enable_if< E !=dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( I *  f,
size_type  c 
)
inlineexplicitconstexpr

Definition at line 255 of file span.hpp.

◆ span() [4/12]

template<class T , std::size_t E>
template<class I , class L , typename std::enable_if< E==dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( I *  f,
L *  l 
)
inlineconstexpr

Definition at line 261 of file span.hpp.

◆ span() [5/12]

template<class T , std::size_t E>
template<class I , class L , typename std::enable_if< E !=dynamic_extent &&detail::span_convertible< I, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( I *  f,
L *  l 
)
inlineexplicitconstexpr

Definition at line 267 of file span.hpp.

◆ span() [6/12]

template<class T , std::size_t E>
template<std::size_t N, typename std::enable_if< detail::span_capacity< E, N >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( typename std::enable_if< true, T >::type(&)  a[N])
inlineconstexprnoexcept

Definition at line 273 of file span.hpp.

◆ span() [7/12]

template<class T , std::size_t E>
template<class U , std::size_t N, typename std::enable_if< detail::span_compatible< T, E, U, N >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( std::array< U, N > &  a)
inlineconstexprnoexcept

Definition at line 279 of file span.hpp.

◆ span() [8/12]

template<class T , std::size_t E>
template<class U , std::size_t N, typename std::enable_if< detail::span_compatible< T, E, const U, N >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( const std::array< U, N > &  a)
inlineconstexprnoexcept

Definition at line 285 of file span.hpp.

◆ span() [9/12]

template<class T , std::size_t E>
template<class R , typename std::enable_if< E==dynamic_extent &&detail::span_is_range< R, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( R &&  r)
inlineconstexprnoexcept

Definition at line 291 of file span.hpp.

◆ span() [10/12]

template<class T , std::size_t E>
template<class R , typename std::enable_if< E !=dynamic_extent &&detail::span_is_range< R, T >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( R &&  r)
inlineexplicitconstexprnoexcept

Definition at line 298 of file span.hpp.

◆ span() [11/12]

template<class T , std::size_t E>
template<class U , std::size_t N, typename std::enable_if< detail::span_implicit< E, N >::value &&detail::span_copyable< T, E, U, N >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( const span< U, N > &  s)
inlineconstexprnoexcept

Definition at line 305 of file span.hpp.

◆ span() [12/12]

template<class T , std::size_t E>
template<class U , std::size_t N, typename std::enable_if<!detail::span_implicit< E, N >::value &&detail::span_copyable< T, E, U, N >::value, int >::type = 0>
constexpr boost::span< T, E >::span ( const span< U, N > &  s)
inlineexplicitconstexprnoexcept

Definition at line 311 of file span.hpp.

Member Function Documentation

◆ back()

template<class T , std::size_t E>
constexpr reference boost::span< T, E >::back ( ) const
inlineconstexpr

Definition at line 375 of file span.hpp.

References boost::span< T, E >::s_.

◆ begin()

template<class T , std::size_t E>
constexpr iterator boost::span< T, E >::begin ( ) const
inlineconstexprnoexcept

Definition at line 383 of file span.hpp.

References boost::span< T, E >::s_.

Referenced by translation::ci_search().

◆ cbegin()

template<class T , std::size_t E>
constexpr const_iterator boost::span< T, E >::cbegin ( ) const
inlineconstexprnoexcept

Definition at line 399 of file span.hpp.

References boost::span< T, E >::s_.

◆ cend()

template<class T , std::size_t E>
constexpr const_iterator boost::span< T, E >::cend ( ) const
inlineconstexprnoexcept

Definition at line 403 of file span.hpp.

References boost::span< T, E >::s_.

◆ crbegin()

template<class T , std::size_t E>
constexpr const_reverse_iterator boost::span< T, E >::crbegin ( ) const
inlineconstexprnoexcept

Definition at line 407 of file span.hpp.

References boost::span< T, E >::s_.

◆ crend()

template<class T , std::size_t E>
constexpr const_reverse_iterator boost::span< T, E >::crend ( ) const
inlineconstexprnoexcept

Definition at line 411 of file span.hpp.

References boost::span< T, E >::s_.

◆ data()

template<class T , std::size_t E>
constexpr pointer boost::span< T, E >::data ( ) const
inlineconstexprnoexcept

Definition at line 379 of file span.hpp.

References boost::span< T, E >::s_.

◆ empty()

template<class T , std::size_t E>
constexpr bool boost::span< T, E >::empty ( ) const
inlineconstexprnoexcept

Definition at line 363 of file span.hpp.

References boost::span< T, E >::s_.

◆ end()

template<class T , std::size_t E>
constexpr iterator boost::span< T, E >::end ( ) const
inlineconstexprnoexcept

Definition at line 387 of file span.hpp.

References boost::span< T, E >::s_.

Referenced by translation::ci_search().

◆ first() [1/2]

template<class T , std::size_t E>
template<std::size_t C>
constexpr span<T, C> boost::span< T, E >::first ( ) const
inlineconstexpr

Definition at line 315 of file span.hpp.

References boost::span< T, E >::s_.

◆ first() [2/2]

template<class T , std::size_t E>
constexpr span<T, dynamic_extent> boost::span< T, E >::first ( size_type  c) const
inlineconstexpr

Definition at line 341 of file span.hpp.

References c, and boost::span< T, E >::s_.

◆ front()

template<class T , std::size_t E>
constexpr reference boost::span< T, E >::front ( ) const
inlineconstexpr

Definition at line 371 of file span.hpp.

References boost::span< T, E >::s_.

◆ last() [1/2]

template<class T , std::size_t E>
template<std::size_t C>
constexpr span<T, C> boost::span< T, E >::last ( ) const
inlineconstexpr

Definition at line 321 of file span.hpp.

References boost::span< T, E >::s_.

◆ last() [2/2]

template<class T , std::size_t E>
constexpr span<T, dynamic_extent> boost::span< T, E >::last ( size_type  c) const
inlineconstexpr

Definition at line 345 of file span.hpp.

References c, and boost::span< T, E >::s_.

◆ operator[]()

template<class T , std::size_t E>
constexpr reference boost::span< T, E >::operator[] ( size_type  i) const
inlineconstexpr

Definition at line 367 of file span.hpp.

References i, and boost::span< T, E >::s_.

◆ rbegin()

template<class T , std::size_t E>
constexpr reverse_iterator boost::span< T, E >::rbegin ( ) const
inlineconstexprnoexcept

Definition at line 391 of file span.hpp.

References boost::span< T, E >::s_.

◆ rend()

template<class T , std::size_t E>
constexpr reverse_iterator boost::span< T, E >::rend ( ) const
inlineconstexprnoexcept

Definition at line 395 of file span.hpp.

References boost::span< T, E >::s_.

◆ size()

template<class T , std::size_t E>
constexpr size_type boost::span< T, E >::size ( ) const
inlineconstexprnoexcept

Definition at line 355 of file span.hpp.

References boost::span< T, E >::s_.

Referenced by image::apply_light().

◆ size_bytes()

template<class T , std::size_t E>
constexpr size_type boost::span< T, E >::size_bytes ( ) const
inlineconstexprnoexcept

Definition at line 359 of file span.hpp.

References boost::span< T, E >::s_.

◆ subspan() [1/3]

template<class T , std::size_t E>
template<std::size_t O, std::size_t C = dynamic_extent>
constexpr std::enable_if<C == dynamic_extent, span<T, detail::span_sub<E, O>::value> >::type boost::span< T, E >::subspan ( ) const
inlineconstexpr

Definition at line 328 of file span.hpp.

References boost::span< T, E >::s_.

◆ subspan() [2/3]

template<class T , std::size_t E>
template<std::size_t O, std::size_t C = dynamic_extent>
constexpr std::enable_if<C != dynamic_extent, span<T, C> >::type boost::span< T, E >::subspan ( ) const
inlineconstexpr

Definition at line 335 of file span.hpp.

References boost::span< T, E >::s_.

◆ subspan() [3/3]

template<class T , std::size_t E>
constexpr span<T, dynamic_extent> boost::span< T, E >::subspan ( size_type  o,
size_type  c = dynamic_extent 
) const
inlineconstexpr

Definition at line 349 of file span.hpp.

References c, boost::dynamic_extent, and boost::span< T, E >::s_.

Member Data Documentation

◆ extent

template<class T , std::size_t E>
constexpr std::size_t boost::span< T, E >::extent = E
staticconstexpr

Definition at line 239 of file span.hpp.

◆ s_

template<class T , std::size_t E>
detail::span_store<T, E> boost::span< T, E >::s_
private

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