127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//===----------------------------------------------------------------------===//
227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//
327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//                     The LLVM Compiler Infrastructure
427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//
827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//===----------------------------------------------------------------------===//
927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
1027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// <regex>
1127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
1227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// class match_results<BidirectionalIterator, Allocator>
1327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
1427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// allocator_type get_allocator() const;
1527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
1627405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant#include <regex>
1727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant#include <cassert>
1827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
191b92188a82b01e76ac6e8ad5f997293c2a078adcMarshall Clow#include "test_allocator.h"
2027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
2127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnanttemplate <class CharT, class Allocator>
2227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnantvoid
2327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnanttest(const Allocator& a)
2427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant{
2527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    std::match_results<const CharT*, Allocator> m(a);
2627405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    assert(m.size() == 0);
2727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    assert(m.str() == std::basic_string<CharT>());
2827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    assert(m.get_allocator() == a);
2927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant}
3027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant
3127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnantint main()
3227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant{
3327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    test<char>(test_allocator<std::sub_match<const char*> >(3));
3427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant    test<wchar_t>(test_allocator<std::sub_match<const wchar_t*> >(3));
3527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant}
36