mirror of
https://github.com/microsoft/GSL.git
synced 2024-11-03 17:56:43 -05:00
constexpr for make_span (#627)
This commit is contained in:
parent
b3870ca020
commit
7eb8f41af5
@ -619,43 +619,43 @@ as_writeable_bytes(span<ElementType, Extent> s) GSL_NOEXCEPT
|
|||||||
// make_span() - Utility functions for creating spans
|
// make_span() - Utility functions for creating spans
|
||||||
//
|
//
|
||||||
template <class ElementType>
|
template <class ElementType>
|
||||||
span<ElementType> make_span(ElementType* ptr, typename span<ElementType>::index_type count)
|
constexpr span<ElementType> make_span(ElementType* ptr, typename span<ElementType>::index_type count)
|
||||||
{
|
{
|
||||||
return span<ElementType>(ptr, count);
|
return span<ElementType>(ptr, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ElementType>
|
template <class ElementType>
|
||||||
span<ElementType> make_span(ElementType* firstElem, ElementType* lastElem)
|
constexpr span<ElementType> make_span(ElementType* firstElem, ElementType* lastElem)
|
||||||
{
|
{
|
||||||
return span<ElementType>(firstElem, lastElem);
|
return span<ElementType>(firstElem, lastElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ElementType, std::size_t N>
|
template <class ElementType, std::size_t N>
|
||||||
span<ElementType, N> make_span(ElementType (&arr)[N])
|
constexpr span<ElementType, N> make_span(ElementType (&arr)[N])
|
||||||
{
|
{
|
||||||
return span<ElementType, N>(arr);
|
return span<ElementType, N>(arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Container>
|
template <class Container>
|
||||||
span<typename Container::value_type> make_span(Container& cont)
|
constexpr span<typename Container::value_type> make_span(Container& cont)
|
||||||
{
|
{
|
||||||
return span<typename Container::value_type>(cont);
|
return span<typename Container::value_type>(cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Container>
|
template <class Container>
|
||||||
span<const typename Container::value_type> make_span(const Container& cont)
|
constexpr span<const typename Container::value_type> make_span(const Container& cont)
|
||||||
{
|
{
|
||||||
return span<const typename Container::value_type>(cont);
|
return span<const typename Container::value_type>(cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Ptr>
|
template <class Ptr>
|
||||||
span<typename Ptr::element_type> make_span(Ptr& cont, std::ptrdiff_t count)
|
constexpr span<typename Ptr::element_type> make_span(Ptr& cont, std::ptrdiff_t count)
|
||||||
{
|
{
|
||||||
return span<typename Ptr::element_type>(cont, count);
|
return span<typename Ptr::element_type>(cont, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Ptr>
|
template <class Ptr>
|
||||||
span<typename Ptr::element_type> make_span(Ptr& cont)
|
constexpr span<typename Ptr::element_type> make_span(Ptr& cont)
|
||||||
{
|
{
|
||||||
return span<typename Ptr::element_type>(cont);
|
return span<typename Ptr::element_type>(cont);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user