summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/ext
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-27 22:59:36 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-27 22:59:36 +0000
commit03fd06639be64d3229ffdaf026671867d2f50967 (patch)
treeb6ce0fbc7eb73ad90bed9d9a6e094baf5cb4c6b0 /libstdc++-v3/include/ext
parentd080be9e8e4f369de29217271e3389a22af79715 (diff)
downloadppe42-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.h9
-rw-r--r--libstdc++-v3/include/ext/sso_string_base.h10
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
OpenPOWER on IntegriCloud