diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-27 22:59:36 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-27 22:59:36 +0000 |
commit | 03fd06639be64d3229ffdaf026671867d2f50967 (patch) | |
tree | b6ce0fbc7eb73ad90bed9d9a6e094baf5cb4c6b0 /libstdc++-v3/include/ext | |
parent | d080be9e8e4f369de29217271e3389a22af79715 (diff) | |
download | ppe42-gcc-03fd06639be64d3229ffdaf026671867d2f50967.tar.gz ppe42-gcc-03fd06639be64d3229ffdaf026671867d2f50967.zip |
2007-04-27 Paolo Carlini <pcarlini@suse.de>
DR 438, [DR].
* include/bits/basic_string.h (_S_construct_aux(_InIterator,
_InIterator, const _Alloc&, __true_type)): Do not cast the
second argument.
* include/ext/rc_string_base.h (_S_construct_aux(_Integer,
_Integer, const _Alloc&, std::__true_type)): Likewise.
* include/ext/sso_string_base.h (_M_construct_aux(_InIterator,
_InIterator, std::__true_type)): Likewise.
* include/bits/stl_deque.h (_M_initialize_dispatch(_Integer,
_Integer, __true_type)): Cast the first argument.
(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do
not cast the arguments.
(_M_insert_dispatch(iterator, _Integer, _Integer, __true_type)):
Likewise.
* include/bits/stl_list.h (_M_initialize_dispatch(_Integer,
_Integer, __true_type)): Likewise.
(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do
not cast both arguments.
* include/bits/stl_bvector.h (_M_initialize_dispatch(_Integer,
_Integer, __true_type)): Cast the first argument.
(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do not
cast the arguments.
* include/bits/stl_vector.h (_M_initialize_dispatch(_Integer,
_Integer, __true_type)): Cast the first argument.
(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do not
cast the arguments.
(_M_insert_dispatch(iterator, _Integer, _Integer, __true_type)):
Likewise.
* testsuite/21_strings/basic_string/requirements/dr438/
constructor.cc: New.
* testsuite/ext/vstring/requirements/dr438/constructor.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/deque/
assign_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/deque/
constructor.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/deque/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/deque/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/deque/
insert_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/list/
assign_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/list/
constructor.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/list/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/list/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/list/
insert_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
assign_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
constructor.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
insert_neg.cc: Likewise.
* testsuite/23_containers/requirements/sequences/dr438/vector/
bool/constructor.cc: Likewise.
* docs/html/ext/howto.html: Add an entry for DR 438.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124243 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/ext')
-rw-r--r-- | libstdc++-v3/include/ext/rc_string_base.h | 9 | ||||
-rw-r--r-- | libstdc++-v3/include/ext/sso_string_base.h | 10 |
2 files changed, 10 insertions, 9 deletions
diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h index 9a6c9a63ad6..7c0934a3084 100644 --- a/libstdc++-v3/include/ext/rc_string_base.h +++ b/libstdc++-v3/include/ext/rc_string_base.h @@ -231,12 +231,13 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) return _S_construct(__beg, __end, __a, _Tag()); } - template<typename _InIterator> + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 438. Ambiguity in the "do the right thing" clause + template<typename _Integer> static _CharT* - _S_construct_aux(_InIterator __beg, _InIterator __end, + _S_construct_aux(_Integer __beg, _Integer __end, const _Alloc& __a, std::__true_type) - { return _S_construct(static_cast<size_type>(__beg), - static_cast<value_type>(__end), __a); } + { return _S_construct(static_cast<size_type>(__beg), __end, __a); } template<typename _InIterator> static _CharT* diff --git a/libstdc++-v3/include/ext/sso_string_base.h b/libstdc++-v3/include/ext/sso_string_base.h index a97d1e111b6..3b87879c4ca 100644 --- a/libstdc++-v3/include/ext/sso_string_base.h +++ b/libstdc++-v3/include/ext/sso_string_base.h @@ -106,12 +106,12 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _M_construct(__beg, __end, _Tag()); } - template<typename _InIterator> + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 438. Ambiguity in the "do the right thing" clause + template<typename _Integer> void - _M_construct_aux(_InIterator __beg, _InIterator __end, - std::__true_type) - { _M_construct(static_cast<size_type>(__beg), - static_cast<value_type>(__end)); } + _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) + { _M_construct(static_cast<size_type>(__beg), __end); } template<typename _InIterator> void |