diff --git a/include/__tree b/include/__tree index 9ffc38d2..d8f6cb7d 100644 --- a/include/__tree +++ b/include/__tree @@ -641,7 +641,11 @@ public: #endif pointer; - _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT {} + _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} _LIBCPP_INLINE_VISIBILITY pointer operator->() const @@ -712,7 +716,12 @@ public: #endif pointer; - _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() {} + _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT +#if _LIBCPP_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} + private: typedef typename remove_const<__node>::type __non_const_node; typedef typename pointer_traits<__node_pointer>::template diff --git a/test/containers/associative/map/map.access/iterator.pass.cpp b/test/containers/associative/map/map.access/iterator.pass.cpp index 048c074c..64a6284e 100644 --- a/test/containers/associative/map/map.access/iterator.pass.cpp +++ b/test/containers/associative/map/map.access/iterator.pass.cpp @@ -207,4 +207,18 @@ int main() } } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::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/associative/multimap/iterator.pass.cpp b/test/containers/associative/multimap/iterator.pass.cpp index 283b32dc..a58b5830 100644 --- a/test/containers/associative/multimap/iterator.pass.cpp +++ b/test/containers/associative/multimap/iterator.pass.cpp @@ -211,4 +211,18 @@ int main() } } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::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/associative/multiset/iterator.pass.cpp b/test/containers/associative/multiset/iterator.pass.cpp index 2a7b209e..f801de72 100644 --- a/test/containers/associative/multiset/iterator.pass.cpp +++ b/test/containers/associative/multiset/iterator.pass.cpp @@ -195,4 +195,18 @@ int main() assert(*i == j); } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::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/associative/set/iterator.pass.cpp b/test/containers/associative/set/iterator.pass.cpp index b509aea0..f52e8451 100644 --- a/test/containers/associative/set/iterator.pass.cpp +++ b/test/containers/associative/set/iterator.pass.cpp @@ -191,4 +191,18 @@ int main() assert(*i == j); } #endif +#if _LIBCPP_STD_VER > 11 + { // N3644 testing + typedef std::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 } diff --git a/test/containers/sequences/array/iterators.pass.cpp b/test/containers/sequences/array/iterators.pass.cpp index af5e064d..8da3803d 100644 --- a/test/containers/sequences/array/iterators.pass.cpp +++ b/test/containers/sequences/array/iterators.pass.cpp @@ -37,7 +37,7 @@ int main() } #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing { typedef std::array C; C::iterator ii1{}, ii2{}; diff --git a/test/containers/sequences/deque/iterators.pass.cpp b/test/containers/sequences/deque/iterators.pass.cpp index 5645b5d9..a83a16b3 100644 --- a/test/containers/sequences/deque/iterators.pass.cpp +++ b/test/containers/sequences/deque/iterators.pass.cpp @@ -45,7 +45,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::deque::iterator ii1{}, ii2{}; std::deque::iterator ii4 = ii1; std::deque::const_iterator cii{}; diff --git a/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp b/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp index aa39339c..2e995145 100644 --- a/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp +++ b/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp @@ -121,7 +121,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::forward_list::iterator ii1{}, ii2{}; std::forward_list::iterator ii4 = ii1; std::forward_list::const_iterator cii{}; diff --git a/test/containers/sequences/vector.bool/iterators.pass.cpp b/test/containers/sequences/vector.bool/iterators.pass.cpp index f45bf986..98f725e2 100644 --- a/test/containers/sequences/vector.bool/iterators.pass.cpp +++ b/test/containers/sequences/vector.bool/iterators.pass.cpp @@ -95,7 +95,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing std::vector::iterator ii1{}, ii2{}; std::vector::iterator ii4 = ii1; std::vector::const_iterator cii{}; diff --git a/test/containers/sequences/vector/iterators.pass.cpp b/test/containers/sequences/vector/iterators.pass.cpp index 8e0d482f..4ee16e9f 100644 --- a/test/containers/sequences/vector/iterators.pass.cpp +++ b/test/containers/sequences/vector/iterators.pass.cpp @@ -136,7 +136,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::vector C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/test/containers/unord/unord.map/iterators.pass.cpp b/test/containers/unord/unord.map/iterators.pass.cpp index 4fc85a2a..c780a663 100644 --- a/test/containers/unord/unord.map/iterators.pass.cpp +++ b/test/containers/unord/unord.map/iterators.pass.cpp @@ -109,7 +109,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_map C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/test/containers/unord/unord.multimap/iterators.pass.cpp b/test/containers/unord/unord.multimap/iterators.pass.cpp index cdf70c1a..9abb196b 100644 --- a/test/containers/unord/unord.multimap/iterators.pass.cpp +++ b/test/containers/unord/unord.multimap/iterators.pass.cpp @@ -115,7 +115,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_multimap C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/test/containers/unord/unord.multiset/iterators.pass.cpp b/test/containers/unord/unord.multiset/iterators.pass.cpp index bc6f8804..e51b3e1c 100644 --- a/test/containers/unord/unord.multiset/iterators.pass.cpp +++ b/test/containers/unord/unord.multiset/iterators.pass.cpp @@ -108,7 +108,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_multiset C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/test/containers/unord/unord.set/iterators.pass.cpp b/test/containers/unord/unord.set/iterators.pass.cpp index 6127d669..7bb9770d 100644 --- a/test/containers/unord/unord.set/iterators.pass.cpp +++ b/test/containers/unord/unord.set/iterators.pass.cpp @@ -108,7 +108,7 @@ int main() } #endif #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::unordered_set C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; diff --git a/test/strings/basic.string/string.iterators/iterators.pass.cpp b/test/strings/basic.string/string.iterators/iterators.pass.cpp index ff896094..386ceded 100644 --- a/test/strings/basic.string/string.iterators/iterators.pass.cpp +++ b/test/strings/basic.string/string.iterators/iterators.pass.cpp @@ -22,7 +22,7 @@ int main() { #if _LIBCPP_STD_VER > 11 - { // N3664 testing + { // N3644 testing typedef std::string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -34,7 +34,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::wstring C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -46,7 +46,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::u16string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1; @@ -58,7 +58,7 @@ int main() assert ( !(ii1 != cii )); } - { // N3664 testing + { // N3644 testing typedef std::u32string C; C::iterator ii1{}, ii2{}; C::iterator ii4 = ii1;