gcc/
[official-gcc.git] / libstdc++-v3 / testsuite / 28_regex / sub_match / embedded_zeros_cmp.cc
blobc587fc0f31ddb5b1eafa40bfec7869284374be55
1 // { dg-do run { target c++11 } }
3 //
4 // 2014-11-13 Daniel Kruegler <daniel.kruegler@gmail.com>
5 //
6 // Copyright (C) 2014-2018 Free Software Foundation, Inc.
7 //
8 // This file is part of the GNU ISO C++ Library. This library is free
9 // software; you can redistribute it and/or modify it under the
10 // terms of the GNU General Public License as published by the
11 // Free Software Foundation; either version 3, or (at your option)
12 // any later version.
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
19 // You should have received a copy of the GNU General Public License along
20 // with this library; see the file COPYING3. If not see
21 // <http://www.gnu.org/licenses/>.
23 // 28.9.2 [re.submatch.op] sub_match members, [DR 2217]
25 #include <regex>
26 #include <string>
27 #include <testsuite_hooks.h>
29 int main()
31 typedef char value_type;
32 typedef std::basic_string<value_type> string_type;
33 typedef std::sub_match<value_type*> sub_match_type;
34 const string_type test_data1("abc\0d", 4);
35 value_type test_data2[] = {'a', 'b', 'c'};
36 const string_type test_data3("abc");
38 sub_match_type sm;
39 sm.first = std::begin(test_data2);
40 sm.second = std::end(test_data2);
41 sm.matched = true;
43 VERIFY( test_data1 != sm );
44 VERIFY( sm != test_data1 );
45 VERIFY( sm < test_data1 );
46 VERIFY( !(test_data1 < sm) );
47 VERIFY( test_data1 > sm );
49 VERIFY( test_data3 == sm );
50 VERIFY( sm == test_data3 );
51 VERIFY( !(sm < test_data3) );
52 VERIFY( !(test_data3 < sm) );