This is a microoptimisation to call the relevant _M_assign_dispatch
function directly (because we know we have iterators), rather than
calling assign() to do the dispatching.
* include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
_M_assign_dispatch directly with correct tag.
Tested powerpc64le-linux, committed to trunk.
commit 72d50c42a61a1627d54e0213b5112575950063ba
Author: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue Oct 11 10:33:41 2016 +0000
Optimise std::list::assign(initializer_list<T>) slightly
* include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
_M_assign_dispatch directly with correct tag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240984
138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libstdc++-v3/include/bits/stl_list.h
b/libstdc++-v3/include/bits/stl_list.h
index 40e2d18..87c8a39 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -830,7 +830,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
*/
void
assign(initializer_list<value_type> __l)
- { this->assign(__l.begin(), __l.end()); }
+ { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); }
#endif
/// Get a copy of the memory allocation object.