[libcxx] Portability fix: unordered_set and unordered_multiset iterators are not...
authorLouis Dionne <ldionne@apple.com>
Thu, 24 Jan 2019 19:09:22 +0000 (19:09 +0000)
committerLouis Dionne <ldionne@apple.com>
Thu, 24 Jan 2019 19:09:22 +0000 (19:09 +0000)
commitc43f673090d86237d6eb832c4244fc121070486d
tree4334fcc0d34a9f5c90e7ec7e04a2f5c5ece775c2
parent18972d1ee960b6903aba3eaaef66f5d84a8010a2
[libcxx] Portability fix: unordered_set and unordered_multiset iterators are not required to be the same

The unordered_set and unordered_multiset iterators are specified in the standard as follows:

using iterator             = implementation-defined; // see [container.requirements]
using const_iterator       = implementation-defined; // see [container.requirements]
using local_iterator       = implementation-defined; // see [container.requirements]
using const_local_iterator = implementation-defined; // see [container.requirements]

The pairs iterator/const_iterator and local_iterator/const_local_iterator
are not required to be the same. The reasonable requirement would be that
iterator can convert to const_iterator and local_iterator can convert to
const_local_iterator. This patch weakens the check and makes the test
more portable.

Reviewed as https://reviews.llvm.org/D56493.
Thanks to Andrey Maksimov for the patch.

llvm-svn: 352083
libcxx/test/std/containers/unord/iterator_difference_type.pass.cpp