From b04a5750dfeec65d28d2f2be029bc5bc29014687 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Tue, 7 Mar 2017 13:58:31 -0500 Subject: [PATCH] Let us not construct a new iterator each time "end()" is called. --- include/concise.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/concise.h b/include/concise.h index 7d93b1b..d15d251 100644 --- a/include/concise.h +++ b/include/concise.h @@ -431,7 +431,7 @@ template class ConciseSet { const_iterator begin() const; - const_iterator end() const; + const_iterator & end() const; bool contains(uint32_t o) const { if (isEmpty() || ((int32_t)o > last) || (o > MAX_ALLOWED_INTEGER)) { @@ -1018,7 +1018,8 @@ ConciseSet::begin() const { } template -inline ConciseSetBitForwardIterator +inline ConciseSetBitForwardIterator& ConciseSet::end() const { - return ConciseSetBitForwardIterator(*this, true); + static ConciseSetBitForwardIterator endp(*this, true); + return endp; }