1// { dg-options "-std=gnu++17" } 2 3// Copyright (C) 2013-2020 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// You should have received a copy of the GNU General Public License along 17// with this library; see the file COPYING3. If not see 18// <http://www.gnu.org/licenses/>. 19 20namespace operations_rfind_3 { 21 22// basic_string_view::find_last_not_of 23 24static void 25test03 () 26{ 27 typedef gdb::string_view::size_type csize_type; 28 gdb::string_view::size_type pos; 29 csize_type npos = gdb::string_view::npos; 30 31 gdb::string_view x; 32 pos = x.find_last_not_of('X'); 33 VERIFY( pos == npos ); 34 pos = x.find_last_not_of("XYZ"); 35 VERIFY( pos == npos ); 36 37 gdb::string_view y("a"); 38 pos = y.find_last_not_of('X'); 39 VERIFY( pos == 0 ); 40 pos = y.find_last_not_of('a'); 41 VERIFY( pos == npos ); 42 pos = y.find_last_not_of("XYZ"); 43 VERIFY( pos == 0 ); 44 pos = y.find_last_not_of("a"); 45 VERIFY( pos == npos ); 46 47 gdb::string_view z("ab"); 48 pos = z.find_last_not_of('X'); 49 VERIFY( pos == 1 ); 50 pos = z.find_last_not_of("XYZ"); 51 VERIFY( pos == 1 ); 52 pos = z.find_last_not_of('b'); 53 VERIFY( pos == 0 ); 54 pos = z.find_last_not_of("Xb"); 55 VERIFY( pos == 0 ); 56 pos = z.find_last_not_of("Xa"); 57 VERIFY( pos == 1 ); 58} 59 60static int 61main () 62{ 63 test03(); 64 65 return 0; 66} 67 68} // namespace operations_rfind_3 69