]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 25_algorithms / generate_n / dr426.cc
CommitLineData
8d9254fc 1// Copyright (C) 2019-2020 Free Software Foundation, Inc.
846541dd
JW
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// { dg-do run }
19
20#include <algorithm>
21#include <testsuite_hooks.h>
22
23// DR 426. search_n(), fill_n(), and generate_n() with negative n
24
25struct Gen
26{
27 int operator()() const { throw 1; }
28};
29
30void
31test01()
32{
33 int i = 99;
34 std::generate_n(&i, 0, Gen());
35 VERIFY( i == 99 );
36 std::generate_n(&i, -1, Gen());
37 VERIFY( i == 99 );
38 std::generate_n(&i, -100, Gen());
39 VERIFY( i == 99 );
40}
41
42int
43main()
44{
45 test01();
46}