diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-02-19 18:55:40 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-02-19 18:55:40 +0000 |
commit | cf9280bf7e26b68be590b813d46aea29db5061de (patch) | |
tree | 9d69046b666a19b9d58f0acc29aa4106a83a521a | |
parent | 25c0cad4febcc3c1297ccf500559fa76af4b3b18 (diff) | |
download | gcc-cf9280bf7e26b68be590b813d46aea29db5061de.zip gcc-cf9280bf7e26b68be590b813d46aea29db5061de.tar.gz gcc-cf9280bf7e26b68be590b813d46aea29db5061de.tar.bz2 |
array (array): Add pointer and const_pointer typedefs in C++0x mode, per DR 1306.
2010-02-19 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1_impl/array (array): Add pointer and const_pointer
typedefs in C++0x mode, per DR 1306.
* testsuite/util/testsuite_containers.h (basic_types): Add pointer
and const_pointer typedefs.
(pointer_aware_types): Remove.
* testsuite/util/testsuite_container_traits.h: Adjust.
From-SVN: r156906
-rw-r--r-- | libstdc++-v3/ChangeLog | 9 | ||||
-rw-r--r-- | libstdc++-v3/include/tr1_impl/array | 6 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_container_traits.h | 15 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_containers.h | 26 |
4 files changed, 22 insertions, 34 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e85c538..f89d8bc 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,14 @@ 2010-02-19 Paolo Carlini <paolo.carlini@oracle.com> + * include/tr1_impl/array (array): Add pointer and const_pointer + typedefs in C++0x mode, per DR 1306. + * testsuite/util/testsuite_containers.h (basic_types): Add pointer + and const_pointer typedefs. + (pointer_aware_types): Remove. + * testsuite/util/testsuite_container_traits.h: Adjust. + +2010-02-19 Paolo Carlini <paolo.carlini@oracle.com> + * include/bits/stl_algo.h (for_each): Implement resolution of DR 1110. * testsuite/25_algorithms/for_each/1.cc: New. diff --git a/libstdc++-v3/include/tr1_impl/array b/libstdc++-v3/include/tr1_impl/array index 7cd3db3..183f636 100644 --- a/libstdc++-v3/include/tr1_impl/array +++ b/libstdc++-v3/include/tr1_impl/array @@ -1,6 +1,6 @@ // class template array -*- C++ -*- -// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008, 2009, 2010 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 @@ -49,6 +49,10 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 struct array { typedef _Tp value_type; +#ifdef _GLIBCXX_INCLUDE_AS_CXX0X + typedef _Tp* pointer; + typedef const _Tp* const_pointer; +#endif typedef value_type& reference; typedef const value_type& const_reference; typedef value_type* iterator; diff --git a/libstdc++-v3/testsuite/util/testsuite_container_traits.h b/libstdc++-v3/testsuite/util/testsuite_container_traits.h index af37515..7893843 100644 --- a/libstdc++-v3/testsuite/util/testsuite_container_traits.h +++ b/libstdc++-v3/testsuite/util/testsuite_container_traits.h @@ -34,7 +34,6 @@ namespace __gnu_test typedef std::false_type is_adaptor; typedef std::false_type is_reversible; typedef std::false_type is_allocator_aware; - typedef std::false_type is_pointer_aware; typedef std::false_type is_associative; typedef std::false_type is_unordered; typedef std::false_type is_mapped; @@ -64,7 +63,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -77,7 +75,6 @@ namespace __gnu_test { typedef std::true_type is_container; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -91,7 +88,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -105,7 +101,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -118,7 +113,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -132,7 +126,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type has_erase; typedef std::true_type has_insert; @@ -144,7 +137,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_associative; typedef std::true_type is_mapped; @@ -157,7 +149,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_associative; typedef std::true_type is_mapped; @@ -170,7 +161,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_associative; typedef std::true_type has_insert; @@ -182,7 +172,6 @@ namespace __gnu_test typedef std::true_type is_container; typedef std::true_type is_reversible; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_associative; typedef std::true_type has_insert; @@ -213,7 +202,6 @@ namespace __gnu_test { typedef std::true_type is_container; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_unordered; typedef std::true_type is_mapped; @@ -228,7 +216,6 @@ namespace __gnu_test { typedef std::true_type is_container; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_unordered; typedef std::true_type is_mapped; @@ -241,7 +228,6 @@ namespace __gnu_test { typedef std::true_type is_container; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_unordered; typedef std::true_type has_size_type_constructor; @@ -254,7 +240,6 @@ namespace __gnu_test { typedef std::true_type is_container; typedef std::true_type is_allocator_aware; - typedef std::true_type is_pointer_aware; typedef std::true_type is_unordered; typedef std::true_type has_size_type_constructor; diff --git a/libstdc++-v3/testsuite/util/testsuite_containers.h b/libstdc++-v3/testsuite/util/testsuite_containers.h index af07441..24133cd 100644 --- a/libstdc++-v3/testsuite/util/testsuite_containers.h +++ b/libstdc++-v3/testsuite/util/testsuite_containers.h @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010 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 @@ -33,6 +33,8 @@ namespace __gnu_test // Base container requirements (table 80) typedef _Tp test_type; typedef typename test_type::value_type value_type; + typedef typename test_type::pointer pointer; + typedef typename test_type::const_pointer const_pointer; typedef typename test_type::reference reference; typedef typename test_type::const_reference const_reference; typedef typename test_type::iterator iterator; @@ -59,15 +61,6 @@ namespace __gnu_test typedef typename test_type::allocator_type allocator_type; }; - template<typename _Tp, bool _Bt = traits<_Tp>::is_pointer_aware::value> - struct pointer_aware_types - { - // Allocator-aware requirements (table 82) - typedef _Tp test_type; - typedef typename test_type::pointer pointer; - typedef typename test_type::const_pointer const_pointer; - }; - template<typename _Tp, bool _Bt = traits<_Tp>::is_associative::value> struct associative_types { @@ -114,13 +107,13 @@ namespace __gnu_test struct basic_types<_Tp, false> { }; template<typename _Tp> - struct reversible_types<_Tp, false> { }; + struct adaptor_types<_Tp, false> { }; template<typename _Tp> - struct allocator_aware_types<_Tp, false> { }; + struct reversible_types<_Tp, false> { }; template<typename _Tp> - struct pointer_aware_types<_Tp, false> { }; + struct allocator_aware_types<_Tp, false> { }; template<typename _Tp> struct associative_types<_Tp, false> { }; @@ -131,15 +124,12 @@ namespace __gnu_test template<typename _Tp> struct mapped_types<_Tp, false> { }; - template<typename _Tp> - struct adaptor_types<_Tp, false> { }; - // Primary template. template<typename _Tp> struct types : basic_types<_Tp>, adaptor_types<_Tp>, reversible_types<_Tp>, - allocator_aware_types<_Tp>, pointer_aware_types<_Tp>, - associative_types<_Tp>, unordered_types<_Tp>, mapped_types<_Tp> + allocator_aware_types<_Tp>, associative_types<_Tp>, + unordered_types<_Tp>, mapped_types<_Tp> { }; |