|
| 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]) |
| |