diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-05-10 18:37:54 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-05-10 18:37:54 +0000 |
commit | 0fc125eaee86d038abe5edfb479dc830089a69f4 (patch) | |
tree | c29c4e2d0913cf7f7ce42dc2a31854af6d479cb8 | |
parent | 3a7e3b6994153f59697d1ab2bc3e251daa63a4d7 (diff) | |
download | gcc-0fc125eaee86d038abe5edfb479dc830089a69f4.zip gcc-0fc125eaee86d038abe5edfb479dc830089a69f4.tar.gz gcc-0fc125eaee86d038abe5edfb479dc830089a69f4.tar.bz2 |
hashtable (hashtable_iterator<>::hashtable_iterator(), [...]): Add.
2006-05-10 Paolo Carlini <pcarlini@suse.de>
Peter Doerfler <gcc@pdoerfler.com>
* include/tr1/hashtable (hashtable_iterator<>::hashtable_iterator(),
hashtable_const_iterator<>::hashtable_const_iterator(),
node_iterator<>::node_iterator(),
node_const_iterator<>::node_const_iterator()): Add.
(node_iterator<>::node_iterator(hash_node<>*),
node_const_iterator<>::node_const_iterator(hash_node<>*)): Tweak,
remove default.
* testsuite/tr1/6_containers/unordered/hashtable/
iterators_default_constructor.c: New.
Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com>
From-SVN: r113681
-rw-r--r-- | libstdc++-v3/ChangeLog | 13 | ||||
-rw-r--r-- | libstdc++-v3/include/tr1/hashtable | 23 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc | 32 |
3 files changed, 62 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b2694b9..71c8b1e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,16 @@ +2006-05-10 Paolo Carlini <pcarlini@suse.de> + Peter Doerfler <gcc@pdoerfler.com> + + * include/tr1/hashtable (hashtable_iterator<>::hashtable_iterator(), + hashtable_const_iterator<>::hashtable_const_iterator(), + node_iterator<>::node_iterator(), + node_const_iterator<>::node_const_iterator()): Add. + (node_iterator<>::node_iterator(hash_node<>*), + node_const_iterator<>::node_const_iterator(hash_node<>*)): Tweak, + remove default. + * testsuite/tr1/6_containers/unordered/hashtable/ + iterators_default_constructor.c: New. + 2006-05-10 Marc Glisse <marc.glisse@normalesup.org> * include/ext/pool_allocator.h: Add missing std:: qualifications. diff --git a/libstdc++-v3/include/tr1/hashtable b/libstdc++-v3/include/tr1/hashtable index 3b8bcef..ad34a9c 100644 --- a/libstdc++-v3/include/tr1/hashtable +++ b/libstdc++-v3/include/tr1/hashtable @@ -171,8 +171,11 @@ namespace Internal typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; + node_iterator() + : node_iterator_base<Value, cache>(0) { } + explicit - node_iterator(hash_node<Value, cache>* p = 0) + node_iterator(hash_node<Value, cache>* p) : node_iterator_base<Value, cache>(p) { } reference @@ -209,8 +212,11 @@ namespace Internal typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; + node_const_iterator() + : node_iterator_base<Value, cache>(0) { } + explicit - node_const_iterator(hash_node<Value, cache>* p = 0) + node_const_iterator(hash_node<Value, cache>* p) : node_iterator_base<Value, cache>(p) { } node_const_iterator(const node_iterator<Value, constant_iterators, @@ -246,8 +252,7 @@ namespace Internal { hashtable_iterator_base(hash_node<Value, cache>* node, hash_node<Value, cache>** bucket) - : m_cur_node(node), m_cur_bucket(bucket) - { } + : m_cur_node(node), m_cur_bucket(bucket) { } void incr() @@ -303,6 +308,9 @@ namespace Internal typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; + hashtable_iterator() + : hashtable_iterator_base<Value, cache>(0, 0) { } + hashtable_iterator(hash_node<Value, cache>* p, hash_node<Value, cache>** b) : hashtable_iterator_base<Value, cache>(p, b) { } @@ -310,7 +318,7 @@ namespace Internal explicit hashtable_iterator(hash_node<Value, cache>** b) : hashtable_iterator_base<Value, cache>(*b, b) { } - + reference operator*() const { return this->m_cur_node->m_v; } @@ -345,6 +353,9 @@ namespace Internal typedef std::ptrdiff_t difference_type; typedef std::forward_iterator_tag iterator_category; + hashtable_const_iterator() + : hashtable_iterator_base<Value, cache>(0, 0) { } + hashtable_const_iterator(hash_node<Value, cache>* p, hash_node<Value, cache>** b) : hashtable_iterator_base<Value, cache>(p, b) { } @@ -352,7 +363,7 @@ namespace Internal explicit hashtable_const_iterator(hash_node<Value, cache>** b) : hashtable_iterator_base<Value, cache>(*b, b) { } - + hashtable_const_iterator(const hashtable_iterator<Value, constant_iterators, cache>& x) : hashtable_iterator_base<Value, cache>(x.m_cur_node, x.m_cur_bucket) { } diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc new file mode 100644 index 0000000..17705ae --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc @@ -0,0 +1,32 @@ +// { dg-do compile } + +// Copyright (C) 2006 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// 6.3 Unordered associative containers + +#include <tr1/unordered_set> + +void +test01() +{ + std::tr1::unordered_set<int>::iterator it; + std::tr1::unordered_set<int>::const_iterator cit; + std::tr1::unordered_set<int>::local_iterator lit; + std::tr1::unordered_set<int>::const_local_iterator clit; +} |