re PR libstdc++/41530 ([c++0x] Cannot move-construct std::tuple from a different type of std::tuple)
2009-10-05 John Bytheway <jbytheway@gmail.com> PR libstdc++/41530 * include/std/tuple (_Tuple_impl<>::_Tuple_impl(_Tuple_impl<>&&)): Fix to just move. * testsuite/20_util/tuple/cons/41530.cc: New. From-SVN: r152461
This commit is contained in:
parent
8c32d1e009
commit
cadd2a9cb3
3 changed files with 42 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
2009-10-05 John Bytheway <jbytheway@gmail.com>
|
||||
|
||||
PR libstdc++/41530
|
||||
* include/std/tuple (_Tuple_impl<>::_Tuple_impl(_Tuple_impl<>&&)):
|
||||
Fix to just move.
|
||||
* testsuite/20_util/tuple/cons/41530.cc: New.
|
||||
|
||||
2009-10-05 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
* doc/xml/manual/debug.xml: Add narrative for GDB Python pretty
|
||||
|
|
|
@ -174,8 +174,7 @@ namespace std
|
|||
template<typename... _UElements>
|
||||
_Tuple_impl(_Tuple_impl<_Idx, _UElements...>&& __in)
|
||||
: _Inherited(std::move(__in._M_tail())),
|
||||
_Base(std::forward<typename _Tuple_impl<_Idx, _UElements...>::
|
||||
_Base>(__in._M_head())) { }
|
||||
_Base(std::move(__in._M_head())) { }
|
||||
|
||||
_Tuple_impl&
|
||||
operator=(const _Tuple_impl& __in)
|
||||
|
|
34
libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
Normal file
34
libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
Normal file
|
@ -0,0 +1,34 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
// { dg-do compile }
|
||||
|
||||
// Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING3. If not see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
|
||||
class A {};
|
||||
class B : public A {};
|
||||
|
||||
// PR libstdc++/41530
|
||||
void test01()
|
||||
{
|
||||
std::tuple<B*> b;
|
||||
std::tuple<A*> a1(b);
|
||||
std::tuple<A*> a2(std::move(b));
|
||||
}
|
Loading…
Add table
Reference in a new issue