]> git.ipfire.org Git - thirdparty/gcc.git/commit - libstdc++-v3/testsuite/util/exception/safety.h
testsuite_container_traits.h (traits_base): Add has_throwing_erase trait.
authorPaolo Carlini <paolo.carlini@oracle.com>
Fri, 5 Mar 2010 01:51:56 +0000 (01:51 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 5 Mar 2010 01:51:56 +0000 (01:51 +0000)
commit714902c8d41b98d1254a17cae94d9192ee8c7d82
treec991893918a37695a0f5bf9ecd2333d472922937
parent630e6f1be53c41d0d17ece3b9d1167af0c561f84
testsuite_container_traits.h (traits_base): Add has_throwing_erase trait.

2010-03-04  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/util/testsuite_container_traits.h (traits_base): Add
has_throwing_erase trait.
(traits<vector>, traits<deque>): Typedef the latter to true_type.
* testsuite/util/exception/safety.h (generation_prohibited):
Do not test vector::erase and deque::erase: can throw if
either copy constructor or assignment operator of value_type
throws.
* testsuite/23_containers/vector/requirements/exception/
generation_prohibited.cc: Remove xfail.
* testsuite/23_containers/deque/requirements/exception/
generation_prohibited.cc: Likewise.

* include/ext/throw_allocator.h (hash<__gnu_cxx::throw_value_limit>::
operator(), hash<__gnu_cxx::throw_value_random>::operator()): Pass
argument by const ref.

* testsuite/util/testsuite_container_traits.h (traits<map>,
traits<multimap>, traits<set>, traits<multiset>,
traits<unordered_map>, traits<unordered_multimap>,
traits<unordered_set>, traits<unordered_multiset>): Typedef
consistently has_erase and has_insert as true_type.

* testsuite/util/testsuite_container_traits.h
(traits<unordered_map>, traits<unordered_multimap>,
traits<unordered_set>, traits<unordered_multiset>): Do not wrongly
typedef has_size_type_constructor as true_type: the constructor
accepting a size_type actually gets the initial number of
buckets.

From-SVN: r157239
libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/throw_allocator.h
libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
libstdc++-v3/testsuite/util/exception/safety.h
libstdc++-v3/testsuite/util/testsuite_container_traits.h