gcc/libstdc++-v3/testsuite/20_util/pair/moveable.cc

64 lines
1.8 KiB
C++
Raw Normal View History

moveable.cc: New. 2007-10-03 Chris Jefferson <chris@bubblescope.net> Benjamin Kosnik <bkoz@redhat.com> * testsuite/20_util/pair/moveable.cc: New. Merge from libstdcxx_so_7-branch. * testsuite/23_containers/deque/capacity/moveable.cc: Same. * testsuite/23_containers/deque/cons/moveable.cc: Same. * testsuite/23_containers/deque/modifiers/moveable.cc: Same. * testsuite/23_containers/deque/moveable.cc: Same. * testsuite/23_containers/list/moveable.cc: Same. * testsuite/23_containers/map/moveable.cc: Same. * testsuite/23_containers/multimap/moveable.cc: Same. * testsuite/23_containers/multiset/moveable.cc: Same. * testsuite/23_containers/set/moveable.cc: Same. * testsuite/23_containers/vector/cons/moveable.cc: Same. * testsuite/23_containers/vector/modifiers/moveable.cc: Same. * testsuite/23_containers/vector/moveable.cc: Same. * testsuite/23_containers/vector/resize/moveable.cc: Same. * testsuite/25_algorithms/heap/moveable.cc: Same. * testsuite/25_algorithms/nth_element/moveable.cc: Same. * testsuite/25_algorithms/partial_sort/moveable.cc: Same. * testsuite/25_algorithms/partition/moveable.cc: Same. * testsuite/25_algorithms/remove_if/moveable.cc: Same. * testsuite/25_algorithms/remove/moveable.cc: Same. * testsuite/25_algorithms/reverse/moveable.cc: Same. * testsuite/25_algorithms/rotate/moveable.cc: Same. * testsuite/25_algorithms/sort/moveable.cc: Same. * testsuite/25_algorithms/swap_ranges/moveable.cc: Same. * testsuite/25_algorithms/unique/moveable.cc: Same. * testsuite/util/testsuite_rvalref.h: New. * testsuite/25_algorithms/equal/equal.cc: Move to... * testsuite/25_algorithms/equal/no_operator_ne.cc: ...this. * testsuite/25_algorithms/heap/heap.cc: Move to... * testsuite/25_algorithms/heap/1.cc: ...this. * testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to... * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this. * testsuite/25_algorithms/partition/partition.cc: Move to... * testsuite/25_algorithms/partition/1.cc: ...this. * testsuite/25_algorithms/stable_partition/1.cc: ... and this. * testsuite/25_algorithms/search/1.cc: Update from merge. * testsuite/25_algorithms/search/check_type.cc: Same. * testsuite/lib/dg-options.exp (dg-require-rvalref): New. * testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r128990
2007-10-03 19:27:18 +02:00
// { dg-options "-std=gnu++0x" }
// Copyright (C) 2005, 2007, 2009 Free Software Foundation, Inc.
moveable.cc: New. 2007-10-03 Chris Jefferson <chris@bubblescope.net> Benjamin Kosnik <bkoz@redhat.com> * testsuite/20_util/pair/moveable.cc: New. Merge from libstdcxx_so_7-branch. * testsuite/23_containers/deque/capacity/moveable.cc: Same. * testsuite/23_containers/deque/cons/moveable.cc: Same. * testsuite/23_containers/deque/modifiers/moveable.cc: Same. * testsuite/23_containers/deque/moveable.cc: Same. * testsuite/23_containers/list/moveable.cc: Same. * testsuite/23_containers/map/moveable.cc: Same. * testsuite/23_containers/multimap/moveable.cc: Same. * testsuite/23_containers/multiset/moveable.cc: Same. * testsuite/23_containers/set/moveable.cc: Same. * testsuite/23_containers/vector/cons/moveable.cc: Same. * testsuite/23_containers/vector/modifiers/moveable.cc: Same. * testsuite/23_containers/vector/moveable.cc: Same. * testsuite/23_containers/vector/resize/moveable.cc: Same. * testsuite/25_algorithms/heap/moveable.cc: Same. * testsuite/25_algorithms/nth_element/moveable.cc: Same. * testsuite/25_algorithms/partial_sort/moveable.cc: Same. * testsuite/25_algorithms/partition/moveable.cc: Same. * testsuite/25_algorithms/remove_if/moveable.cc: Same. * testsuite/25_algorithms/remove/moveable.cc: Same. * testsuite/25_algorithms/reverse/moveable.cc: Same. * testsuite/25_algorithms/rotate/moveable.cc: Same. * testsuite/25_algorithms/sort/moveable.cc: Same. * testsuite/25_algorithms/swap_ranges/moveable.cc: Same. * testsuite/25_algorithms/unique/moveable.cc: Same. * testsuite/util/testsuite_rvalref.h: New. * testsuite/25_algorithms/equal/equal.cc: Move to... * testsuite/25_algorithms/equal/no_operator_ne.cc: ...this. * testsuite/25_algorithms/heap/heap.cc: Move to... * testsuite/25_algorithms/heap/1.cc: ...this. * testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to... * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this. * testsuite/25_algorithms/partition/partition.cc: Move to... * testsuite/25_algorithms/partition/1.cc: ...this. * testsuite/25_algorithms/stable_partition/1.cc: ... and this. * testsuite/25_algorithms/search/1.cc: Update from merge. * testsuite/25_algorithms/search/check_type.cc: Same. * testsuite/lib/dg-options.exp (dg-require-rvalref): New. * testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r128990
2007-10-03 19:27:18 +02:00
//
// 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)
moveable.cc: New. 2007-10-03 Chris Jefferson <chris@bubblescope.net> Benjamin Kosnik <bkoz@redhat.com> * testsuite/20_util/pair/moveable.cc: New. Merge from libstdcxx_so_7-branch. * testsuite/23_containers/deque/capacity/moveable.cc: Same. * testsuite/23_containers/deque/cons/moveable.cc: Same. * testsuite/23_containers/deque/modifiers/moveable.cc: Same. * testsuite/23_containers/deque/moveable.cc: Same. * testsuite/23_containers/list/moveable.cc: Same. * testsuite/23_containers/map/moveable.cc: Same. * testsuite/23_containers/multimap/moveable.cc: Same. * testsuite/23_containers/multiset/moveable.cc: Same. * testsuite/23_containers/set/moveable.cc: Same. * testsuite/23_containers/vector/cons/moveable.cc: Same. * testsuite/23_containers/vector/modifiers/moveable.cc: Same. * testsuite/23_containers/vector/moveable.cc: Same. * testsuite/23_containers/vector/resize/moveable.cc: Same. * testsuite/25_algorithms/heap/moveable.cc: Same. * testsuite/25_algorithms/nth_element/moveable.cc: Same. * testsuite/25_algorithms/partial_sort/moveable.cc: Same. * testsuite/25_algorithms/partition/moveable.cc: Same. * testsuite/25_algorithms/remove_if/moveable.cc: Same. * testsuite/25_algorithms/remove/moveable.cc: Same. * testsuite/25_algorithms/reverse/moveable.cc: Same. * testsuite/25_algorithms/rotate/moveable.cc: Same. * testsuite/25_algorithms/sort/moveable.cc: Same. * testsuite/25_algorithms/swap_ranges/moveable.cc: Same. * testsuite/25_algorithms/unique/moveable.cc: Same. * testsuite/util/testsuite_rvalref.h: New. * testsuite/25_algorithms/equal/equal.cc: Move to... * testsuite/25_algorithms/equal/no_operator_ne.cc: ...this. * testsuite/25_algorithms/heap/heap.cc: Move to... * testsuite/25_algorithms/heap/1.cc: ...this. * testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to... * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this. * testsuite/25_algorithms/partition/partition.cc: Move to... * testsuite/25_algorithms/partition/1.cc: ...this. * testsuite/25_algorithms/stable_partition/1.cc: ... and this. * testsuite/25_algorithms/search/1.cc: Update from merge. * testsuite/25_algorithms/search/check_type.cc: Same. * testsuite/lib/dg-options.exp (dg-require-rvalref): New. * testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r128990
2007-10-03 19:27:18 +02:00
// 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/>.
moveable.cc: New. 2007-10-03 Chris Jefferson <chris@bubblescope.net> Benjamin Kosnik <bkoz@redhat.com> * testsuite/20_util/pair/moveable.cc: New. Merge from libstdcxx_so_7-branch. * testsuite/23_containers/deque/capacity/moveable.cc: Same. * testsuite/23_containers/deque/cons/moveable.cc: Same. * testsuite/23_containers/deque/modifiers/moveable.cc: Same. * testsuite/23_containers/deque/moveable.cc: Same. * testsuite/23_containers/list/moveable.cc: Same. * testsuite/23_containers/map/moveable.cc: Same. * testsuite/23_containers/multimap/moveable.cc: Same. * testsuite/23_containers/multiset/moveable.cc: Same. * testsuite/23_containers/set/moveable.cc: Same. * testsuite/23_containers/vector/cons/moveable.cc: Same. * testsuite/23_containers/vector/modifiers/moveable.cc: Same. * testsuite/23_containers/vector/moveable.cc: Same. * testsuite/23_containers/vector/resize/moveable.cc: Same. * testsuite/25_algorithms/heap/moveable.cc: Same. * testsuite/25_algorithms/nth_element/moveable.cc: Same. * testsuite/25_algorithms/partial_sort/moveable.cc: Same. * testsuite/25_algorithms/partition/moveable.cc: Same. * testsuite/25_algorithms/remove_if/moveable.cc: Same. * testsuite/25_algorithms/remove/moveable.cc: Same. * testsuite/25_algorithms/reverse/moveable.cc: Same. * testsuite/25_algorithms/rotate/moveable.cc: Same. * testsuite/25_algorithms/sort/moveable.cc: Same. * testsuite/25_algorithms/swap_ranges/moveable.cc: Same. * testsuite/25_algorithms/unique/moveable.cc: Same. * testsuite/util/testsuite_rvalref.h: New. * testsuite/25_algorithms/equal/equal.cc: Move to... * testsuite/25_algorithms/equal/no_operator_ne.cc: ...this. * testsuite/25_algorithms/heap/heap.cc: Move to... * testsuite/25_algorithms/heap/1.cc: ...this. * testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to... * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this. * testsuite/25_algorithms/partition/partition.cc: Move to... * testsuite/25_algorithms/partition/1.cc: ...this. * testsuite/25_algorithms/stable_partition/1.cc: ... and this. * testsuite/25_algorithms/search/1.cc: Update from merge. * testsuite/25_algorithms/search/check_type.cc: Same. * testsuite/lib/dg-options.exp (dg-require-rvalref): New. * testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r128990
2007-10-03 19:27:18 +02:00
// NOTE: This makes use of the fact that we know how moveable
// is implemented on pair, and also vector. If the implementation
// changes this test may begin to fail.
#include <vector>
#include <utility>
#include <testsuite_hooks.h>
bool test __attribute__((unused)) = true;
void
test1()
{
std::pair<int,int> a(1,1),b(2,2);
a=std::move(b);
VERIFY(a.first == 2 && a.second == 2 && b.first == 2 && b.second == 2);
std::pair<int,int> c(std::move(a));
VERIFY(c.first == 2 && c.second == 2 && a.first == 2 && a.second == 2);
}
void
test2()
{
std::vector<int> v,w;
v.push_back(1);
w.push_back(2);
w.push_back(2);
std::pair<int, std::vector<int> > p = make_pair(1,v);
std::pair<int, std::vector<int> > q = make_pair(2,w);
p = std::move(q);
VERIFY(p.first == 2 && q.first == 2 &&
stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first. 2007-11-09 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first. * include/bits/stl_list.h (list<>::operator=(list&&)): Likewise. * include/bits/stl_bvector.h (vector<bool>::operator=(vector&&)): Likewise. * include/bits/stl_vector.h (vector<>::operator=(vector&&)): Likewise. * include/bits/stl_map.h (map<>::operator=(map&&)): Likewise. * include/bits/stl_multimap.h (multimap<>::operator=(multimap&&)): Likewise. * include/bits/stl_multiset.h (multiset<>::operator=(multiset&&)): Likewise. * include/bits/stl_set.h (set<>::operator=(set&&)): Likewise. * include/debug/map.h (map<>::operator=(map&&)): Likewise. * include/debug/set.h (set<>::operator=(set&&)): Likewise. * include/debug/multimap.h (multimap<>::operator=(multimap&&)): Likewise. * include/debug/multiset.h (multiset<>::operator=(multiset&&)): Likewise. * include/debug/deque (deque<>::operator=(deque&&)): Likewise. * include/debug/list (list<>::operator=(list&&)): Likewise. * include/debug/vector (vector<>::operator=(vector&&)): Likewise. * testsuite/23_containers/multimap/moveable.cc: Adjust. * testsuite/23_containers/multiset/moveable.cc: Likewise. * testsuite/23_containers/set/moveable.cc: Likewise. * testsuite/23_containers/map/moveable.cc: Likewise. * testsuite/20_util/pair/moveable.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust dg-error line numbers. * 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: Likewise. * 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. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Likewise. * 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. From-SVN: r130051
2007-11-09 18:18:10 +01:00
p.second.size() == 2 && q.second.size() == 0);
moveable.cc: New. 2007-10-03 Chris Jefferson <chris@bubblescope.net> Benjamin Kosnik <bkoz@redhat.com> * testsuite/20_util/pair/moveable.cc: New. Merge from libstdcxx_so_7-branch. * testsuite/23_containers/deque/capacity/moveable.cc: Same. * testsuite/23_containers/deque/cons/moveable.cc: Same. * testsuite/23_containers/deque/modifiers/moveable.cc: Same. * testsuite/23_containers/deque/moveable.cc: Same. * testsuite/23_containers/list/moveable.cc: Same. * testsuite/23_containers/map/moveable.cc: Same. * testsuite/23_containers/multimap/moveable.cc: Same. * testsuite/23_containers/multiset/moveable.cc: Same. * testsuite/23_containers/set/moveable.cc: Same. * testsuite/23_containers/vector/cons/moveable.cc: Same. * testsuite/23_containers/vector/modifiers/moveable.cc: Same. * testsuite/23_containers/vector/moveable.cc: Same. * testsuite/23_containers/vector/resize/moveable.cc: Same. * testsuite/25_algorithms/heap/moveable.cc: Same. * testsuite/25_algorithms/nth_element/moveable.cc: Same. * testsuite/25_algorithms/partial_sort/moveable.cc: Same. * testsuite/25_algorithms/partition/moveable.cc: Same. * testsuite/25_algorithms/remove_if/moveable.cc: Same. * testsuite/25_algorithms/remove/moveable.cc: Same. * testsuite/25_algorithms/reverse/moveable.cc: Same. * testsuite/25_algorithms/rotate/moveable.cc: Same. * testsuite/25_algorithms/sort/moveable.cc: Same. * testsuite/25_algorithms/swap_ranges/moveable.cc: Same. * testsuite/25_algorithms/unique/moveable.cc: Same. * testsuite/util/testsuite_rvalref.h: New. * testsuite/25_algorithms/equal/equal.cc: Move to... * testsuite/25_algorithms/equal/no_operator_ne.cc: ...this. * testsuite/25_algorithms/heap/heap.cc: Move to... * testsuite/25_algorithms/heap/1.cc: ...this. * testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to... * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this. * testsuite/25_algorithms/partition/partition.cc: Move to... * testsuite/25_algorithms/partition/1.cc: ...this. * testsuite/25_algorithms/stable_partition/1.cc: ... and this. * testsuite/25_algorithms/search/1.cc: Update from merge. * testsuite/25_algorithms/search/check_type.cc: Same. * testsuite/lib/dg-options.exp (dg-require-rvalref): New. * testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r128990
2007-10-03 19:27:18 +02:00
std::pair<int, std::vector<int> > r(std::move(p));
VERIFY(r.first == 2 && p.first == 2 &&
r.second.size() == 2 && p.second.size() == 0);
}
int
main()
{
test1();
test2();
}