empty range in pop_heap
Markus Trippelsdorf
markus@trippelsdorf.de
Sun Dec 4 09:37:00 GMT 2011
On 2011.12.03 at 15:35 +0000, Jonathan Wakely wrote:
> On 12 November 2011 15:14, Jonathan Wakely wrote:
> > On 12 November 2011 15:04, Marc Glisse wrote:
> >>
> >> Debug-mode seems to check that first,last is a valid range, is a heap, but
> >> not that it is not empty. Maybe it could?
> >
> > Good idea, thanks. Â I'll change that.
>
> As promised.
>
> * include/debug/macros.h (__glibcxx_check_non_empty_range): Define.
> * include/debug/debug.h (__glibcxx_requires_non_empty_range): Define.
> * include/debug/formatter.h (__msg_non_empty_range): Add.
> * src/debug.cc: Message text for __msg_non_empty_range.
> * include/bits/stl_heap.h (pop_heap): Check for non-empty range.
> * testsuite/25_algorithms/pop_heap/empty_neg.cc: New.
>
> Tested x86_64-linux, committed to trunk.
Thanks Jonathan.
You forgot to change the second one with the comparison functor.
diff --git a/libstdc++-v3/include/bits/stl_heap.h b/libstdc++-v3/include/bits/stl_heap.h
index ed7750c..af62525 100644
--- a/libstdc++-v3/include/bits/stl_heap.h
+++ b/libstdc++-v3/include/bits/stl_heap.h
@@ -360,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// concept requirements
__glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
_RandomAccessIterator>)
+ __glibcxx_requires_non_empty_range(__first, __last);
__glibcxx_requires_valid_range(__first, __last);
__glibcxx_requires_heap_pred(__first, __last, __comp);
--
Markus
More information about the Libstdc++
mailing list