summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/profile
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-27 09:51:21 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-27 09:51:21 +0000
commit3d2b2f494d78e0f4168d2c7ba5a76c05b4f4af71 (patch)
tree34f47ec02fbda70b1690f99110cc522ce6e593a0 /libstdc++-v3/include/profile
parent5ada7a142c1df1fad051c42f408d84df72a06b4c (diff)
downloadppe42-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/deque8
-rw-r--r--libstdc++-v3/include/profile/list17
-rw-r--r--libstdc++-v3/include/profile/vector17
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)
OpenPOWER on IntegriCloud