1// { dg-options "-std=gnu++0x" }
2
3// 2007-10-28  Paolo Carlini  <pcarlini@suse.de>
4
5// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
6//
7// This file is part of the GNU ISO C++ Library.  This library is free
8// software; you can redistribute it and/or modify it under the
9// terms of the GNU General Public License as published by the
10// Free Software Foundation; either version 3, or (at your option)
11// any later version.
12
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16// GNU General Public License for more details.
17
18// You should have received a copy of the GNU General Public License along
19// with this library; see the file COPYING3.  If not see
20// <http://www.gnu.org/licenses/>.
21
22
23#include <vector>
24#include <testsuite_hooks.h>
25#include <testsuite_rvalref.h>
26
27void
28test01()
29{
30  bool test __attribute__((unused)) = true;
31  using namespace __gnu_test;
32
33  std::vector<copycounter> a(40);
34  copycounter::copycount = 0;
35
36  a.erase(a.begin() + 20);
37  VERIFY( copycounter::copycount == 0 );
38
39  a.erase(a.begin());
40  VERIFY( copycounter::copycount == 0 );
41
42  a.erase(a.end() - 1);
43  VERIFY( copycounter::copycount == 0 );
44
45  a.erase(a.begin() + 10, a.end() - 10);
46  VERIFY( copycounter::copycount == 0 );
47
48  a.erase(a.begin(), a.begin() + 5);
49  VERIFY( copycounter::copycount == 0 );
50
51  a.erase(a.end() - 5, a.end());
52  VERIFY( copycounter::copycount == 0 );
53
54  a.erase(a.begin(), a.end());
55  VERIFY( copycounter::copycount == 0 );
56}
57
58int main()
59{
60  test01();
61  return 0;
62}
63