173f26ae56
2011-05-19 Paolo Carlini <paolo.carlini@oracle.com> * include/std/tuple (tuple<>::operator=(tuple&&)): Specify as noexcept. (__get_helper): Likewise. (_Head_base<>::_M_head, _Tuple_impl<>::_M_head, _M_tail): Likewise. * include/bits/move.h (swap): Likewise. * include/bits/algorithmfwd.h (swap): Adjust. * include/bits/stl_pair.h (pair<>::operator=(pair&&)): Spec noexcept. * testsuite/util/testsuite_allocator.h (uneq_allocator): In C++0x mode, prefer delete to access control to make the type not copy assignable. * testsuite/util/testsuite_tr1.h: Add test classes. * testsuite/20_util/tuple/noexcept_swap.cc: New. * testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise. * testsuite/25_algorithms/reverse/moveable.cc: Likewise, prefer delete to access control. * testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning line numbers. From-SVN: r173917
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
// { dg-do compile }
|
|
// { dg-options "-std=gnu++0x" }
|
|
|
|
// Copyright (C) 2005, 2007, 2009, 2011 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/>.
|
|
|
|
// 25.2.9 Reverse
|
|
|
|
#undef _GLIBCXX_CONCEPT_CHECKS
|
|
|
|
#include <algorithm>
|
|
#include <testsuite_iterators.h>
|
|
|
|
using __gnu_test::bidirectional_iterator_wrapper;
|
|
|
|
struct X
|
|
{
|
|
X() = delete;
|
|
X(const X&) = delete;
|
|
void operator=(const X&) = delete;
|
|
};
|
|
|
|
void
|
|
swap(X&, X&) { }
|
|
|
|
void
|
|
test1(bidirectional_iterator_wrapper<X>& begin,
|
|
bidirectional_iterator_wrapper<X>& end)
|
|
{ std::reverse(begin, end); }
|