std::span 的推导指引

来自cppreference.com
< cpp‎ | container‎ | span
定义于头文件 <span>
template<class T, std::size_t N>
span(T (&)[N]) -> span<T, N>;
(1)
template<class T, std::size_t N>
span(std::array<T, N>&) -> span<T, N>;
(2)
template<class T, std::size_t N>
span(const std::array<T, N>&) -> span<const T, N>;
(3)
template<class Container>
span(Container&) -> span<typename Container::value_type>;
(4)
template<class Container>
span(const Container&) -> span<const typename Container::value_type>;
(5)

span 提供五个推导指引

(1-3) 允许从内建数组和 std::array 推导静态长度。

(4-5) 允许从提供嵌套类型 value_type 的容器推导元素类型。