libcopp  2.2.0
Data Structures | Namespaces | Functions | Variables
span.h File Reference
#include <libcopp/utils/config/libcopp_build_features.h>
#include <libcopp/utils/config/stl_include_prefix.h>
#include <assert.h>
#include <array>
#include <cstddef>
#include <initializer_list>
#include <iterator>
#include <type_traits>
#include <libcopp/utils/config/stl_include_suffix.h>
Include dependency graph for span.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gsl::detail::is_specialized_span_convertible< T >
 
struct  gsl::detail::is_specialized_span_convertible< std::array< T, N > >
 
struct  gsl::detail::is_specialized_span_convertible< T[N]>
 
struct  gsl::detail::is_specialized_span_convertible< span< T, EXTENT > >
 
class  gsl::span< T, EXTENT >
 
class  gsl::span< T, dynamic_extent >
 
struct  gsl::_make_span_value_type< TCONTAINER >
 

Namespaces

 gsl
 
 gsl::detail
 

Functions

template<class TCONTAINER >
constexpr auto gsl::size (TCONTAINER &&container) -> decltype(container.size())
 
template<class T , size_t SIZE>
constexpr size_t gsl::size (const T(&)[SIZE]) noexcept
 
template<class TCONTAINER >
constexpr auto gsl::data (TCONTAINER &&container) -> decltype(container.data())
 
template<class T , size_t SIZE>
constexpr T * gsl::data (T(&array_value)[SIZE]) noexcept
 
template<class TELEMENT >
constexpr const TELEMENT * gsl::data (std::initializer_list< TELEMENT > l) noexcept
 
template<class TELEMENT >
constexpr span< TELEMENT > gsl::make_span (TELEMENT *ptr, typename span< TELEMENT >::size_type count)
 
template<class TELEMENT >
constexpr span< TELEMENT > gsl::make_span (TELEMENT *first, TELEMENT *last)
 
template<class TELEMENT , std::size_t N>
constexpr span< TELEMENT, N > gsl::make_span (TELEMENT(&arr)[N]) noexcept
 
template<class TCONTAINER , typename std::enable_if< !std::is_array< typename std::remove_reference< TCONTAINER >::type >::value &&std::is_pointer< decltype(data(std::declval< TCONTAINER >()))>::value &&std::is_convertible< decltype(size(std::declval< TCONTAINER >())), size_t >::value , ::type * = nullptr>
constexpr span< typename _make_span_value_type< TCONTAINER >::type > gsl::make_span (TCONTAINER &&cont)
 

Variables

constexpr size_t gsl::dynamic_extent = static_cast<size_t>(-1)