std::span
的推导指引
来自cppreference.com
定义于头文件 <span>
|
||
template <class It, class EndOrSize> span(It, EndOrSize) -> span<std::remove_reference_t<std::iter_reference_t<It>>>; |
(1) | |
template<class T, std::size_t N> span(T (&)[N]) -> span<T, N>; |
(2) | |
template<class T, std::size_t N> span(std::array<T, N>&) -> span<T, N>; |
(3) | |
template<class T, std::size_t N> span(const std::array<T, N>&) -> span<const T, N>; |
(4) | |
template<class R> span(R&&) -> span<std::remove_reference_t<std::ranges::range_reference_t<R>>>; |
(5) | |
为 span
提供下列推导指引。
(1) 允许从迭代器-哨位对推导元素类型。此重载仅若 It
满足 contiguous_iterator 才参与重载决议。
(2-4) 允许从内建数组与 std::array 推导静态长度。
(5) 允许从范围推导元素类型。此重载仅若 R
满足 contiguous_range 才参与重载决议。