15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
85e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles)//===----------------------------------------------------------------------===//
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// <regex>
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class BidirectionalIterator> class sub_match;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// int compare(const value_type* s) const;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <regex>
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <cassert>
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int main()
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        typedef char CharT;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::sub_match<const CharT*> SM;
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        SM sm = SM();
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        SM sm2 = SM();
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(sm.compare("") == 0);
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        const CharT s[] = {'1', '2', '3', 0};
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        sm.first = s;
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        sm.second = s + 3;
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        sm.matched = true;
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(sm.compare("") > 0);
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(sm.compare("123") == 0);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef wchar_t CharT;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::sub_match<const CharT*> SM;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        SM sm = SM();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        SM sm2 = SM();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(sm.compare(L"") == 0);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        const CharT s[] = {'1', '2', '3', 0};
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        sm.first = s;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        sm.second = s + 3;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        sm.matched = true;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(sm.compare(L"") > 0);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(sm.compare(L"123") == 0);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)