Commit 360b7bff by Paolo Carlini Committed by Paolo Carlini

stl_list.h (insert(iterator, value_type&&)): Just forward to emplace.

2007-11-23  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (insert(iterator, value_type&&)): Just
	forward to emplace.
	* include/bits/stl_vector.h (insert(iterator, value_type&&)): Likewise.
	* include/bits/stl_deque.h (insert(iterator, value_type&&)): Likewise.
	* include/debug/list (insert(iterator, value_type&&)): Likewise.
	* include/debug/vector (insert(iterator, value_type&&)): Likewise.
	* include/debug/deque (insert(iterator, value_type&&)): Likewise.
	* include/bits/list.tcc (insert(iterator, value_type&&)): Remove.
	* include/bits/vector.tcc (insert(iterator, value_type&&)): Likewise.
	* include/bits/deque.tcc (insert(iterator, value_type&&)): Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/insert_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/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* 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/list/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/list/requirements/dr438/insert_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.

From-SVN: r130374
parent 5102fac5
2007-11-23 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_list.h (insert(iterator, value_type&&)): Just
forward to emplace.
* include/bits/stl_vector.h (insert(iterator, value_type&&)): Likewise.
* include/bits/stl_deque.h (insert(iterator, value_type&&)): Likewise.
* include/debug/list (insert(iterator, value_type&&)): Likewise.
* include/debug/vector (insert(iterator, value_type&&)): Likewise.
* include/debug/deque (insert(iterator, value_type&&)): Likewise.
* include/bits/list.tcc (insert(iterator, value_type&&)): Remove.
* include/bits/vector.tcc (insert(iterator, value_type&&)): Likewise.
* include/bits/deque.tcc (insert(iterator, value_type&&)): Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/insert_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/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* 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/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/insert_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.
2007-11-22 Paolo Carlini <pcarlini@suse.de> 2007-11-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree_impl<, true>): Remove, * include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree_impl<, true>): Remove,
......
...@@ -108,27 +108,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -108,27 +108,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Tp, typename _Alloc> template<typename _Tp, typename _Alloc>
typename deque<_Tp, _Alloc>::iterator
deque<_Tp, _Alloc>::
insert(iterator __position, value_type&& __x)
{
if (__position._M_cur == this->_M_impl._M_start._M_cur)
{
push_front(std::move(__x));
return this->_M_impl._M_start;
}
else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
{
push_back(std::move(__x));
iterator __tmp = this->_M_impl._M_finish;
--__tmp;
return __tmp;
}
else
return _M_insert_aux(__position, std::move(__x));
}
template<typename _Tp, typename _Alloc>
template<typename... _Args> template<typename... _Args>
typename deque<_Tp, _Alloc>::iterator typename deque<_Tp, _Alloc>::iterator
deque<_Tp, _Alloc>:: deque<_Tp, _Alloc>::
......
...@@ -103,18 +103,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -103,18 +103,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
return iterator(__tmp); return iterator(__tmp);
} }
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Tp, typename _Alloc>
typename list<_Tp, _Alloc>::iterator
list<_Tp, _Alloc>::
insert(iterator __position, value_type&& __x)
{
_Node* __tmp = _M_create_node(std::move(__x));
__tmp->hook(__position._M_node);
return iterator(__tmp);
}
#endif
template<typename _Tp, typename _Alloc> template<typename _Tp, typename _Alloc>
typename list<_Tp, _Alloc>::iterator typename list<_Tp, _Alloc>::iterator
list<_Tp, _Alloc>:: list<_Tp, _Alloc>::
......
...@@ -1276,7 +1276,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -1276,7 +1276,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* specified location. * specified location.
*/ */
iterator iterator
insert(iterator __position, value_type&& __x); insert(iterator __position, value_type&& __x)
{ return emplace(__position, std::move(__x)); }
#endif #endif
/** /**
......
...@@ -951,7 +951,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -951,7 +951,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* invalidate iterators and references. * invalidate iterators and references.
*/ */
iterator iterator
insert(iterator __position, value_type&& __x); insert(iterator __position, value_type&& __x)
{ return emplace(__position, std::move(__x)); }
#endif #endif
/** /**
......
...@@ -774,7 +774,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -774,7 +774,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* used the user should consider using std::list. * used the user should consider using std::list.
*/ */
iterator iterator
insert(iterator __position, value_type&& __x); insert(iterator __position, value_type&& __x)
{ return emplace(__position, std::move(__x)); }
#endif #endif
/** /**
......
...@@ -115,25 +115,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -115,25 +115,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
return iterator(this->_M_impl._M_start + __n); return iterator(this->_M_impl._M_start + __n);
} }
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Tp, typename _Alloc>
typename vector<_Tp, _Alloc>::iterator
vector<_Tp, _Alloc>::
insert(iterator __position, value_type&& __x)
{
const size_type __n = __position - begin();
if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage
&& __position == end())
{
this->_M_impl.construct(this->_M_impl._M_finish, std::move(__x));
++this->_M_impl._M_finish;
}
else
_M_insert_aux(__position, std::move(__x));
return iterator(this->_M_impl._M_start + __n);
}
#endif
template<typename _Tp, typename _Alloc> template<typename _Tp, typename _Alloc>
typename vector<_Tp, _Alloc>::iterator typename vector<_Tp, _Alloc>::iterator
vector<_Tp, _Alloc>:: vector<_Tp, _Alloc>::
......
...@@ -309,13 +309,7 @@ namespace __debug ...@@ -309,13 +309,7 @@ namespace __debug
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
iterator iterator
insert(iterator __position, _Tp&& __x) insert(iterator __position, _Tp&& __x)
{ { return emplace(__position, std::move(__x)); }
__glibcxx_check_insert(__position);
typename _Base::iterator __res = _Base::insert(__position.base(),
std::move(__x));
this->_M_invalidate_all();
return iterator(__res, this);
}
#endif #endif
void void
......
...@@ -322,11 +322,7 @@ namespace __debug ...@@ -322,11 +322,7 @@ namespace __debug
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
iterator iterator
insert(iterator __position, _Tp&& __x) insert(iterator __position, _Tp&& __x)
{ { return emplace(__position, std::move(__x)); }
__glibcxx_check_insert(__position);
return iterator(_Base::insert(__position.base(),
std::move(__x)), this);
}
#endif #endif
void void
......
...@@ -349,19 +349,7 @@ namespace __debug ...@@ -349,19 +349,7 @@ namespace __debug
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
iterator iterator
insert(iterator __position, _Tp&& __x) insert(iterator __position, _Tp&& __x)
{ { return emplace(__position, std::move(__x)); }
__glibcxx_check_insert(__position);
bool __realloc = _M_requires_reallocation(this->size() + 1);
difference_type __offset = __position - begin();
typename _Base::iterator __res = _Base::insert(__position.base(),
std::move(__x));
if (__realloc)
this->_M_invalidate_all();
else
this->_M_invalidate_if(_After_nth(__offset, _M_base().begin()));
_M_update_guaranteed_capacity();
return iterator(__res, this);
}
#endif #endif
void void
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1464 } // { dg-error "no matching" "" { target *-*-* } 1465 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1399 } // { dg-error "no matching" "" { target *-*-* } 1400 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1399 } // { dg-error "no matching" "" { target *-*-* } 1400 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1552 } // { dg-error "no matching" "" { target *-*-* } 1553 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1326 } // { dg-error "no matching" "" { target *-*-* } 1327 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1295 } // { dg-error "no matching" "" { target *-*-* } 1296 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1295 } // { dg-error "no matching" "" { target *-*-* } 1296 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1295 } // { dg-error "no matching" "" { target *-*-* } 1296 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-error "no matching" "" { target *-*-* } 998 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 937 } // { dg-error "no matching" "" { target *-*-* } 938 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 937 } // { dg-error "no matching" "" { target *-*-* } 938 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1038 } // { dg-error "no matching" "" { target *-*-* } 1039 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment