diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-27 09:51:21 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-27 09:51:21 +0000 |
| commit | 3d2b2f494d78e0f4168d2c7ba5a76c05b4f4af71 (patch) | |
| tree | 34f47ec02fbda70b1690f99110cc522ce6e593a0 /libstdc++-v3/include/profile | |
| parent | 5ada7a142c1df1fad051c42f408d84df72a06b4c (diff) | |
| download | ppe42-gcc-3d2b2f494d78e0f4168d2c7ba5a76c05b4f4af71.tar.gz ppe42-gcc-3d2b2f494d78e0f4168d2c7ba5a76c05b4f4af71.zip | |
2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_deque.h (deque<>::insert(iterator,
const value_type&), deque<>::insert(iterator, value_type&&),
deque<>::emplace(iterator, _Args&&...)): Adjust C++11 signatures to
take a const_iterator.
(deque<>::erase): Simplify.
* include/bits/stl_list.h: Likewise.
(_List_iterator<>::_M_const_cast): Add.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
(_Bit_iterator::_M_const_cast): Add.
* include/bits/deque.tcc: Adjust definitions.
* include/bits/list.tcc: Likewise.
* include/bits/vector.tcc: Likewise.
* include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
Define trivial version in C++98 mode.
* include/ext/vstring.h (__versa_string<>::insert(iterator, _CharT),
__versa_string<>::replace(iterator, iterator, const __versa_string&),
__versa_string<>::replace(iterator, iterator, const _CharT*,
size_type), __versa_string<>::replace(iterator, iterator,
const _CharT*), __versa_string<>::replace(iterator, iterator,
size_type, _CharT)): Adjust C++11 signatures to take a pair of
const_iterators.
* include/debug/deque: Adjust.
* include/debug/list: Likewise.
* include/debug/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/list: Likewise.
* include/profile/vector: Likewise.
(vector<>::emplace): Add.
* testsuite/util/exception/safety.h: Update.
* testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
New.
* testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
Likewise.
* testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
Likewise.
* testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
Likewise.
* testsuite/23_containers/vector/bool/modifiers/insert/
const_iterator.cc: Likewise.
* testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
Likewise.
* testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
Likewise.
* testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
Likewise.
* testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
Likewise.
* testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
Likewise.
* testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
Likewise.
* testsuite/ext/vstring/modifiers/char/54577.cc: Move to testsuite/
ext/vstring/modifiers/erase/char/.
* testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Move to testsuite/
ext/vstring/modifiers/wchar_t/.
* testsuite/ext/vstring/modifiers/char/pop_back.cc: Move to testsuite/
ext/vstring/modifiers/pop_back/char/.
* testsuite/ext/vstring/modifiers/wchar_t/pop_back.cc: Move to
testsuite/ext/vstring/modifiers/pop_back/wchar_t/.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200458 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/profile')
| -rw-r--r-- | libstdc++-v3/include/profile/deque | 8 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/list | 17 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/vector | 17 |
3 files changed, 32 insertions, 10 deletions
diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque index 9943e1e9f02..0ec98386bae 100644 --- a/libstdc++-v3/include/profile/deque +++ b/libstdc++-v3/include/profile/deque @@ -320,7 +320,7 @@ namespace __profile template<typename... _Args> iterator - emplace(iterator __position, _Args&&... __args) + emplace(const_iterator __position, _Args&&... __args) { typename _Base::iterator __res = _Base::emplace(__position, std::forward<_Args>(__args)...); @@ -329,7 +329,11 @@ namespace __profile #endif iterator +#if __cplusplus >= 201103L + insert(const_iterator __position, const _Tp& __x) +#else insert(iterator __position, const _Tp& __x) +#endif { typename _Base::iterator __res = _Base::insert(__position, __x); return iterator(__res); @@ -337,7 +341,7 @@ namespace __profile #if __cplusplus >= 201103L iterator - insert(iterator __position, _Tp&& __x) + insert(const_iterator __position, _Tp&& __x) { return emplace(__position, std::move(__x)); } void diff --git a/libstdc++-v3/include/profile/list b/libstdc++-v3/include/profile/list index 25ad11248b1..3a68bf7493a 100644 --- a/libstdc++-v3/include/profile/list +++ b/libstdc++-v3/include/profile/list @@ -335,7 +335,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > #if __cplusplus >= 201103L template<typename... _Args> iterator - emplace(iterator __position, _Args&&... __args) + emplace(const_iterator __position, _Args&&... __args) { return iterator(_Base::emplace(__position.base(), std::forward<_Args>(__args)...), @@ -344,7 +344,11 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > #endif iterator +#if __cplusplus >= 201103L + insert(const_iterator __position, const _Tp& __x) +#else insert(iterator __position, const _Tp& __x) +#endif { _M_profile_insert(this, __position, size()); return iterator(_Base::insert(__position.base(), __x), this); @@ -352,8 +356,8 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > #if __cplusplus >= 201103L iterator - insert(iterator __position, _Tp&& __x) - { + insert(const_iterator __position, _Tp&& __x) + { _M_profile_insert(this, __position, size()); return iterator(_Base::emplace(__position.base(), std::move(__x)), this); @@ -606,11 +610,12 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > } private: - size_type _M_profile_insert(void* obj, iterator __pos, size_type __size) + size_type + _M_profile_insert(void* obj, const_iterator __pos, size_type __size) { size_type __shift = 0; - typename _Base::iterator __it = __pos.base(); - for ( ; __it!=_Base::end(); __it++) + typename _Base::const_iterator __it = __pos.base(); + for (; __it != _Base::end(); ++__it) __shift++; __profcxx_list_rewind(this); __profcxx_list_operation(this); diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector index d9eb15740c6..de058d0d814 100644 --- a/libstdc++-v3/include/profile/vector +++ b/libstdc++-v3/include/profile/vector @@ -352,7 +352,11 @@ namespace __profile #endif iterator +#if __cplusplus >= 201103L + insert(const_iterator __position, const _Tp& __x) +#else insert(iterator __position, const _Tp& __x) +#endif { __profcxx_vector_insert(this, __position.base() - _Base::begin(), this->size()); @@ -364,7 +368,7 @@ namespace __profile #if __cplusplus >= 201103L iterator - insert(iterator __position, _Tp&& __x) + insert(const_iterator __position, _Tp&& __x) { __profcxx_vector_insert(this, __position.base() - _Base::begin(), this->size()); @@ -374,6 +378,16 @@ namespace __profile return iterator(__res, this); } + template<typename... _Args> + iterator + emplace(const_iterator __position, _Args&&... __args) + { + typename _Base::iterator __res + = _Base::emplace(__position.base(), + std::forward<_Args>(__args)...); + return iterator(__res, this); + } + void insert(iterator __position, initializer_list<value_type> __l) { this->insert(__position, __l.begin(), __l.end()); } @@ -423,7 +437,6 @@ namespace __profile _M_profile_resize(this, __old_size, this->capacity()); } - iterator #if __cplusplus >= 201103L erase(const_iterator __position) |

