From 193ef03eb5271e64afa5702a2eabb216c6926b5c Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Wed, 7 Aug 2013 21:30:44 +0000 Subject: [PATCH] N3644 support for and git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187915 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__hash_table | 6 ++++++ test/containers/unord/unord.map/iterators.pass.cpp | 14 ++++++++++++++ .../unord/unord.multimap/iterators.pass.cpp | 14 ++++++++++++++ .../unord/unord.multiset/iterators.pass.cpp | 14 ++++++++++++++ test/containers/unord/unord.set/iterators.pass.cpp | 14 ++++++++++++++ 5 files changed, 62 insertions(+) diff --git a/include/__hash_table b/include/__hash_table index 7b0fc412b..6157fcd99 100644 --- a/include/__hash_table +++ b/include/__hash_table @@ -112,6 +112,9 @@ public: pointer; _LIBCPP_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __node_(nullptr) +#endif { #if _LIBCPP_DEBUG_LEVEL >= 2 __get_db()->__insert_i(this); @@ -248,6 +251,9 @@ public: typedef __hash_iterator<__non_const_node_pointer> __non_const_iterator; _LIBCPP_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __node_(nullptr) +#endif { #if _LIBCPP_DEBUG_LEVEL >= 2 __get_db()->__insert_i(this); diff --git a/test/containers/unord/unord.map/iterators.pass.cpp b/test/containers/unord/unord.map/iterators.pass.cpp index 7d99fdf9d..4fc85a2a3 100644 --- a/test/containers/unord/unord.map/iterators.pass.cpp +++ b/test/containers/unord/unord.map/iterators.pass.cpp @@ -108,4 +108,18 @@ int main() C::const_iterator i; } #endif +#if _LIBCPP_STD_VER > 11 + { // N3664 testing + typedef std::unordered_map C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/test/containers/unord/unord.multimap/iterators.pass.cpp b/test/containers/unord/unord.multimap/iterators.pass.cpp index c2fc44bcb..cdf70c1a9 100644 --- a/test/containers/unord/unord.multimap/iterators.pass.cpp +++ b/test/containers/unord/unord.multimap/iterators.pass.cpp @@ -114,4 +114,18 @@ int main() C::const_iterator i; } #endif +#if _LIBCPP_STD_VER > 11 + { // N3664 testing + typedef std::unordered_multimap C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/test/containers/unord/unord.multiset/iterators.pass.cpp b/test/containers/unord/unord.multiset/iterators.pass.cpp index ddfc3742f..bc6f88049 100644 --- a/test/containers/unord/unord.multiset/iterators.pass.cpp +++ b/test/containers/unord/unord.multiset/iterators.pass.cpp @@ -107,4 +107,18 @@ int main() C::const_iterator i; } #endif +#if _LIBCPP_STD_VER > 11 + { // N3664 testing + typedef std::unordered_multiset C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif } diff --git a/test/containers/unord/unord.set/iterators.pass.cpp b/test/containers/unord/unord.set/iterators.pass.cpp index 7815b9b38..6127d669b 100644 --- a/test/containers/unord/unord.set/iterators.pass.cpp +++ b/test/containers/unord/unord.set/iterators.pass.cpp @@ -107,4 +107,18 @@ int main() C::const_iterator i; } #endif +#if _LIBCPP_STD_VER > 11 + { // N3664 testing + typedef std::unordered_set C; + C::iterator ii1{}, ii2{}; + C::iterator ii4 = ii1; + C::const_iterator cii{}; + assert ( ii1 == ii2 ); + assert ( ii1 == ii4 ); + assert ( ii1 == cii ); + + assert ( !(ii1 != ii2 )); + assert ( !(ii1 != cii )); + } +#endif }