1// Copyright (C) 2006, 2009 Free Software Foundation, Inc.
2//
3// This file is part of the GNU ISO C++ Library.  This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
6// Free Software Foundation; either version 3, or (at your option)
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
15// with this library; see the file COPYING3.  If not see
16// <http://www.gnu.org/licenses/>.
17
18#include <algorithm>
19#include <iterator>
20#include <sstream>
21#include <testsuite_hooks.h>
22
23struct no_assign
24{
25  int const x;
26  no_assign() : x(23) { }
27  operator int() const { return x; }
28};
29
30// libstdc++/26133
31void test01()
32{
33  bool test __attribute__((unused)) = true;
34  std::ostringstream oss1, oss2;
35
36  no_assign in[4];
37
38  std::unique_copy(in, in + 4, std::ostream_iterator<int>(oss1, "\n"));
39  VERIFY( oss1.str() == "23\n" );
40
41  std::unique_copy(in, in + 4, std::ostream_iterator<int>(oss2, "\n"),
42		   std::equal_to<int>());
43  VERIFY( oss2.str() == "23\n" );
44}
45
46int main()
47{
48  test01();
49  return 0;
50}
51