[/ Copyright 2023 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) ] [section:make_span make_span] [simplesect Authors] * Glen Fernandes [endsimplesect] [section Overview] The header <boost/core/make_span.hpp> provides function templates `make_span` to conveniently create `span` objects. They are useful before C++17 where Class Template Argument Deduction (CTAD) is not available. [endsect] [section Reference] ``` namespace boost { template<class I> constexpr span<I> make_span(I* d, std::size_t n) noexcept; template<class I> constexpr span<I> make_span(I* b, I* e) noexcept; template<class T, std::size_t N> constexpr span<T, N> make_span(T(&a)[N]) noexcept; template<class T, std::size_t N> constexpr span<T, N> make_span(std::array<T, N>& a) noexcept; template<class T, std::size_t N> constexpr span<const T, N> make_span(const std::array<T, N>& a) noexcept; template<class R> span<remove_pointer_t<iterator_t<R> > > make_span(R&& r); } /* boost */ ``` [section Functions] [variablelist [[`template<class I> span<I> make_span(I* f, std::size_t c);`] [Returns `span<I>(f, c)`.]] [[`template<class I> span<I> make_span(I* f, I* l);`] [Returns `span<I>(f, l)`.]] [[`template<class T, std::size_t N> span<T, N> make_span(T(&a)[N]);`] [Returns `span<T, N>(a)`.]] [[`template<class T, std::size_t N> span<T, N> make_span(std::array<T, N>& a);`] [Returns `span<T, N>(a)`.]] [[`template<class T, std::size_t N> span<const T, N> make_span(const std::array<T, N>& a);`] [Returns `span<const T, N>(a)`.]] [[`template<class R> span<remove_pointer_t<iterator_t<R> > > make_span(R&& r);`] [Returns `span<remove_pointer_t<iterator_t<R> > >(std::forward<R>(r))`.]]] [endsect] [endsect] [endsect]