This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] Add missing pointer / const_pointer typedefs to the unordered containers


Hi,

tested x86_64-linux, committed to mainline.

Paolo.

////////////////////
2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/tr1_impl/hashtable (_Hashtable<>): Add missing pointer and
	const_pointer typedefs.
	* testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc:
	Add.
	* testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered_multiset/requirements/
	typedef.cc: Likewise.
	* testsuite/tr1/6_containers/unordered_multimap/requirements/
	typedef.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/typedef.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/requirements/typedef.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/typedef.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/typedef.cc:
	Likewise.
Index: include/tr1_impl/hashtable
===================================================================
*** include/tr1_impl/hashtable	(revision 139627)
--- include/tr1_impl/hashtable	(working copy)
*************** _GLIBCXX_BEGIN_NAMESPACE_TR1
*** 149,154 ****
--- 149,156 ----
        // hasher, if present, comes from _Hash_code_base.
        typedef typename _Allocator::difference_type        difference_type;
        typedef typename _Allocator::size_type              size_type;
+       typedef typename _Allocator::pointer                pointer;
+       typedef typename _Allocator::const_pointer          const_pointer;
        typedef typename _Allocator::reference              reference;
        typedef typename _Allocator::const_reference        const_reference;
        
Index: testsuite/tr1/6_containers/unordered_multimap/requirements/typedef.cc
===================================================================
*** testsuite/tr1/6_containers/unordered_multimap/requirements/typedef.cc	(revision 0)
--- testsuite/tr1/6_containers/unordered_multimap/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,47 ----
+ // { dg-do compile }
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.4.6 unordered_multimap
+ 
+ #include <tr1/unordered_map>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::tr1::unordered_multimap<int, int>  test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::mapped_type                  mapped_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc
===================================================================
*** testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc	(revision 0)
--- testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,46 ----
+ // { dg-do compile }
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.4.3 unordered_set
+ 
+ #include <tr1/unordered_set>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::tr1::unordered_set<int>            test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc
===================================================================
*** testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc	(revision 0)
--- testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,47 ----
+ // { dg-do compile }
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.4.4 unordered_map
+ 
+ #include <tr1/unordered_map>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::tr1::unordered_map<int, int>       test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::mapped_type                  mapped_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/tr1/6_containers/unordered_multiset/requirements/typedef.cc
===================================================================
*** testsuite/tr1/6_containers/unordered_multiset/requirements/typedef.cc	(revision 0)
--- testsuite/tr1/6_containers/unordered_multiset/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,46 ----
+ // { dg-do compile }
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.4.5 unordered_multiset
+ 
+ #include <tr1/unordered_set>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::tr1::unordered_multiset<int>       test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/23_containers/unordered_map/requirements/typedef.cc
===================================================================
*** testsuite/23_containers/unordered_map/requirements/typedef.cc	(revision 0)
--- testsuite/23_containers/unordered_map/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,47 ----
+ // { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.
+ 
+ #include <unordered_map>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::unordered_map<int, int>            test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::mapped_type                  mapped_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/23_containers/unordered_multimap/requirements/typedef.cc
===================================================================
*** testsuite/23_containers/unordered_multimap/requirements/typedef.cc	(revision 0)
--- testsuite/23_containers/unordered_multimap/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,47 ----
+ // { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.
+ 
+ #include <unordered_map>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::unordered_multimap<int, int>       test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::mapped_type                  mapped_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/23_containers/unordered_set/requirements/typedef.cc
===================================================================
*** testsuite/23_containers/unordered_set/requirements/typedef.cc	(revision 0)
--- testsuite/23_containers/unordered_set/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,46 ----
+ // { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.
+ 
+ #include <unordered_set>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::unordered_set<int>                 test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }
Index: testsuite/23_containers/unordered_multiset/requirements/typedef.cc
===================================================================
*** testsuite/23_containers/unordered_multiset/requirements/typedef.cc	(revision 0)
--- testsuite/23_containers/unordered_multiset/requirements/typedef.cc	(revision 0)
***************
*** 0 ****
--- 1,46 ----
+ // { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+ // 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
+ 
+ // Copyright (C) 2008 Free Software Foundation
+ //
+ // 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.
+ 
+ #include <unordered_set>
+ 
+ void test01()
+ {
+   // Check for required typedefs
+   typedef std::unordered_multiset<int>            test_type;
+ 
+   typedef test_type::key_type                     key_type;
+   typedef test_type::value_type                   value_type;
+   typedef test_type::hasher                       hasher;
+   typedef test_type::key_equal                    key_equal;
+   typedef test_type::allocator_type               allocator_type;
+   typedef test_type::pointer                      pointer;
+   typedef test_type::const_pointer                const_pointer;
+   typedef test_type::reference                    reference;
+   typedef test_type::const_reference              const_reference;
+   typedef test_type::size_type                    size_type;
+   typedef test_type::difference_type              difference_type;
+   typedef test_type::iterator                     iterator;
+   typedef test_type::const_iterator               const_iterator;
+   typedef test_type::local_iterator               local_iterator;
+   typedef test_type::const_local_iterator         const_local_iterator;
+ }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]