diff --git a/include/gsl/span b/include/gsl/span index 59bd121..82e0fab 100644 --- a/include/gsl/span +++ b/include/gsl/span @@ -774,6 +774,62 @@ constexpr ElementType& at(span s, index i) return s[i]; } +// [span.obs] Free observer functions +template +constexpr typename span::index_type ssize(const span &span) noexcept +{ + return span.size(); +} + +// [span.iter] Free functions for begin/end functions +template +constexpr typename span::iterator begin(const span &span) noexcept +{ + return span.begin(); +} + +template +constexpr typename span::iterator end(const span &span) noexcept +{ + return span.end(); +} + +template +constexpr typename span::const_iterator cbegin(const span &span) noexcept +{ + return span.cbegin(); +} + +template +constexpr typename span::const_iterator cend(const span &span) noexcept +{ + return span.cend(); +} + +template +constexpr typename span::reverse_iterator rbegin(const span &span) noexcept +{ + return span.rbegin(); +} + +template +constexpr typename span::reverse_iterator rend(const span &span) noexcept +{ + return span.rend(); +} + +template +constexpr typename span::const_reverse_iterator crbegin(const span &span) noexcept +{ + return span.crbegin(); +} + +template +constexpr typename span::const_reverse_iterator crend(const span &span) noexcept +{ + return span.crend(); +} + } // namespace gsl #if defined(_MSC_VER) && !defined(__clang__)