1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===//
2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//                     The LLVM Compiler Infrastructure
4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open
6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details.
7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//
8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===//
9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// <regex>
11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// template <class BidirectionalIterator> class sub_match;
13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// int compare(const string_type& s) const;
15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <regex>
17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert>
18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner
19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main()
20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{
21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    {
22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef char CharT;
23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef std::sub_match<const CharT*> SM;
24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef SM::string_type string;
25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM sm = SM();
26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM sm2 = SM();
27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string()) == 0);
28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        const CharT s[] = {'1', '2', '3', 0};
29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.first = s;
30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.second = s + 3;
31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.matched = true;
32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string()) > 0);
33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string("123")) == 0);
34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    }
35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    {
36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef wchar_t CharT;
37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef std::sub_match<const CharT*> SM;
38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef SM::string_type string;
39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM sm = SM();
40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM sm2 = SM();
41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string()) == 0);
42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        const CharT s[] = {'1', '2', '3', 0};
43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.first = s;
44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.second = s + 3;
45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.matched = true;
46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string()) > 0);
47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(sm.compare(string(L"123")) == 0);
48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    }
49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}
50