This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/51183] pair piecewise_construct_t constructor copies
- From: "redi at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 05 Dec 2011 16:06:57 +0000
- Subject: [Bug libstdc++/51183] pair piecewise_construct_t constructor copies
- Auto-submitted: auto-generated
- References: <bug-51183-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51183
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-12-05 16:06:57 UTC ---
Nice!
it should be pretty simple:
template<class... _Args1, class... _Args2>
pair(piecewise_construct_t,
tuple<_Args1...> __first, tuple<_Args2...> __second)
: pair(std::move(__first), std::move(__second),
typename _Build_index_tuple<sizeof...(_Args1)>::__type(),
typename _Build_index_tuple<sizeof...(_Args2)>::__type())
{ }
template<typename... _Args2, std::size_t... _Indexes1,
typename... _Args2, std::size_t... _Indexes2>
explicit
pair(tuple<_Args1...> __tuple1, tuple<_Args2> __tuple2,
_Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>)
: first(std::forward<_Args1>(get<_Indexes1>(__tuple1))...),
second(std::forward<_Args2>(get<_Indexes2>(__tuple2))...)
{ }