1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef _LIBCPP_EXPERIMENTAL_REGEX
11#define _LIBCPP_EXPERIMENTAL_REGEX
12
13/*
14    experimental/regex synopsis
15
16// C++1z
17namespace std {
18namespace experimental {
19inline namespace fundamentals_v1 {
20namespace pmr {
21
22  template <class BidirectionalIterator>
23  using match_results =
24    std::match_results<BidirectionalIterator,
25                       polymorphic_allocator<sub_match<BidirectionalIterator>>>;
26
27  typedef match_results<const char*> cmatch;
28  typedef match_results<const wchar_t*> wcmatch;
29  typedef match_results<string::const_iterator> smatch;
30  typedef match_results<wstring::const_iterator> wsmatch;
31
32} // namespace pmr
33} // namespace fundamentals_v1
34} // namespace experimental
35} // namespace std
36
37 */
38
39#include <__assert> // all public C++ headers provide the assertion handler
40#include <experimental/__config>
41#include <experimental/memory_resource>
42#include <experimental/string>
43#include <regex>
44
45#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
46#  pragma GCC system_header
47#endif
48
49_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
50
51#ifndef _LIBCPP_CXX03_LANG
52
53template <class _BiDirIter>
54using match_results =
55    _VSTD::match_results<_BiDirIter,
56        polymorphic_allocator<_VSTD::sub_match<_BiDirIter>>>;
57
58_LIBCPP_DEPCREATED_MEMORY_RESOURCE("cmatch") typedef match_results<const char*> cmatch;
59_LIBCPP_DEPCREATED_MEMORY_RESOURCE("smatch") typedef match_results<_VSTD_LFTS_PMR::string::const_iterator> smatch;
60#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
61_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wcmatch") typedef match_results<const wchar_t*> wcmatch;
62_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wsmatch") typedef match_results<_VSTD_LFTS_PMR::wstring::const_iterator> wsmatch;
63#endif
64
65#endif // _LIBCPP_CXX03_LANG
66
67_LIBCPP_END_NAMESPACE_LFTS_PMR
68
69#endif /* _LIBCPP_EXPERIMENTAL_REGEX */
70