From c23d17a61a6ac1a446494026d94c2988aadd5258 Mon Sep 17 00:00:00 2001 From: Neil MacIntosh Date: Sat, 10 Feb 2018 21:11:08 -0800 Subject: [PATCH] Make iterator access functions on span constexpr (#612) As per feedback on span received during the C++ standardization discussions. --- include/gsl/span | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/gsl/span b/include/gsl/span index fa76ed5..1c8b2e5 100644 --- a/include/gsl/span +++ b/include/gsl/span @@ -482,17 +482,17 @@ public: constexpr pointer data() const GSL_NOEXCEPT { return storage_.data(); } // [span.iter], span iterator support - iterator begin() const GSL_NOEXCEPT { return {this, 0}; } - iterator end() const GSL_NOEXCEPT { return {this, length()}; } + constexpr iterator begin() const GSL_NOEXCEPT { return {this, 0}; } + constexpr iterator end() const GSL_NOEXCEPT { return {this, length()}; } - const_iterator cbegin() const GSL_NOEXCEPT { return {this, 0}; } - const_iterator cend() const GSL_NOEXCEPT { return {this, length()}; } + constexpr const_iterator cbegin() const GSL_NOEXCEPT { return {this, 0}; } + constexpr const_iterator cend() const GSL_NOEXCEPT { return {this, length()}; } - reverse_iterator rbegin() const GSL_NOEXCEPT { return reverse_iterator{end()}; } - reverse_iterator rend() const GSL_NOEXCEPT { return reverse_iterator{begin()}; } + constexpr reverse_iterator rbegin() const GSL_NOEXCEPT { return reverse_iterator{end()}; } + constexpr reverse_iterator rend() const GSL_NOEXCEPT { return reverse_iterator{begin()}; } - const_reverse_iterator crbegin() const GSL_NOEXCEPT { return const_reverse_iterator{cend()}; } - const_reverse_iterator crend() const GSL_NOEXCEPT { return const_reverse_iterator{cbegin()}; } + constexpr const_reverse_iterator crbegin() const GSL_NOEXCEPT { return const_reverse_iterator{cend()}; } + constexpr const_reverse_iterator crend() const GSL_NOEXCEPT { return const_reverse_iterator{cbegin()}; } private: // this implementation detail class lets us take advantage of the