| Home | Libraries | People | FAQ | More

## make_span

### Authors

- Glen Fernandes

### 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.

### 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 */

#### Functions

`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))`.