|
template<class C > |
constexpr auto | size (const C &c) -> decltype(c.size()) |
|
template<class T , std::size_t N> |
constexpr std::size_t | size (const T(&)[N]) noexcept |
|
template<class C > |
constexpr auto | data (C &c) -> decltype(c.data()) |
|
template<class C > |
constexpr auto | data (const C &c) -> decltype(c.data()) |
|
template<class T , std::size_t N> |
constexpr T * | data (T(&array)[N]) noexcept |
|
template<class E > |
constexpr const E * | data (std::initializer_list< E > il) noexcept |
|
template<typename ElementType , std::size_t Extent> |
constexpr span< ElementType, Extent > | make_span (span< ElementType, Extent > s) noexcept |
|
template<typename T , std::size_t N> |
constexpr span< T, N > | make_span (T(&arr)[N]) noexcept |
|
template<typename T , std::size_t N> |
TCB_SPAN_ARRAY_CONSTEXPR span< T, N > | make_span (std::array< T, N > &arr) noexcept |
|
template<typename T , std::size_t N> |
TCB_SPAN_ARRAY_CONSTEXPR span< const T, N > | make_span (const std::array< T, N > &arr) noexcept |
|
template<typename Container > |
constexpr span< typename Container::value_type > | make_span (Container &cont) |
|
template<typename Container > |
constexpr span< const typename Container::value_type > | make_span (const Container &cont) |
|
template<typename ElementType , std::size_t Extent> |
span< const byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> | as_bytes (span< ElementType, Extent > s) noexcept |
|
template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0> |
span< byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> | as_writable_bytes (span< ElementType, Extent > s) noexcept |
|
template<std::size_t N, typename E , std::size_t S> |
constexpr auto | get (span< E, S > s) -> decltype(s[N]) |
|