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