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// string_type str() 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        SM sm = SM();
25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM::string_type str = sm.str();
26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(str.empty());
27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        const CharT s[] = {'1', '2', '3', 0};
28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.first = s;
29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.second = s + 3;
30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.matched = true;
31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        str = sm.str();
32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(str == std::string("123"));
33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    }
34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    {
35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef wchar_t CharT;
36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        typedef std::sub_match<const CharT*> SM;
37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM sm = SM();
38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        SM::string_type str = sm.str();
39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(str.empty());
40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        const CharT s[] = {'1', '2', '3', 0};
41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.first = s;
42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.second = s + 3;
43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        sm.matched = true;
44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        str = sm.str();
45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner        assert(str == std::wstring(L"123"));
46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner    }
47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}
48