deduction guides for std::span
From cppreference.com
Defined in header <span>
|
||
template <class It, class End> span(It, End) -> 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) | |
The following deduction guides are provided for span
.
(1) allow the element type to be deduced from the iterator-sentinel pair This overload only participates in overload resolution if It
satisfies contiguous_iterator
(2-4) allow the static extent to be deduced from built-in arrays and std::array.
(5) allow the element type to be deduced from ranges. This overload only participates in overload resolution if R
satisfies contiguous_range