Menu

#4 default constructed iterator_range borks on MSVC

open
nobody
None
5
2009-01-18
2009-01-18
No

iterator_range.inl, line 65: iterator_range<I>::iterator_range()

When using empty iterator_range instances (created with default constructor) with a MSVC compiler with _HAS_ITERATOR_DEBUGGING, any operation on that instance will bork seriously!
On comparison of two iterators, MSVC will check whether they belong to the same container. But iterators of a default constructed iterator_range instances do not have a container! And even while begin and end are assigned to be the same, MSVC thinks not!

Moral of the story: while you can _create_ default constructed ranges, DO NOT USE THEM, unless this gets fixed =)

Discussion


Log in to post a comment.

MongoDB Logo MongoDB