Specialize gsl::at for span

span being a view and not a container, the generic version of gsl::at is not valid any more for span.
This commits adds a specialization of gsl::at for span
This commit is contained in:
ericLemanissier
2016-08-23 10:30:06 +02:00
parent 93b3258e36
commit 134f2db5d9
2 changed files with 15 additions and 0 deletions

View File

@ -653,6 +653,14 @@ as_writeable_bytes(span<ElementType, Extent> s) noexcept
return {reinterpret_cast<byte*>(s.data()), s.size_bytes()};
}
// Specialization of gsl::at for span
template <class ElementType, std::ptrdiff_t Extent>
constexpr ElementType& at(const span<ElementType ,Extent>& s, size_t index)
{
// No bounds checking here because it is done in span::operator[] called below
return s[index];
}
} // namespace gsl
#ifdef _MSC_VER