blob: 8aa880cd80b0c165b669d75e800c226d14d215ed [file] [log] [blame]
Eric Fiseliere047a722016-05-07 03:09:55 +00001// -*- C++ -*-
Louis Dionne9bd93882021-11-17 16:25:01 -05002//===----------------------------------------------------------------------===//
Eric Fiseliere047a722016-05-07 03:09:55 +00003//
Chandler Carruthd2012102019-01-19 10:56:40 +00004// 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
Eric Fiseliere047a722016-05-07 03:09:55 +00007//
8//===----------------------------------------------------------------------===//
9
10#ifndef _LIBCPP_EXPERIMENTAL_REGEX
11#define _LIBCPP_EXPERIMENTAL_REGEX
Louis Dionneb4fce352022-03-25 12:55:36 -040012
Eric Fiseliere047a722016-05-07 03:09:55 +000013/*
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
Louis Dionneb4fce352022-03-25 12:55:36 -040039#include <__assert> // all public C++ headers provide the assertion handler
Eric Fiseliere047a722016-05-07 03:09:55 +000040#include <experimental/__config>
Eric Fiseliere047a722016-05-07 03:09:55 +000041#include <experimental/memory_resource>
Arthur O'Dwyer65077c02022-01-07 09:45:05 -050042#include <experimental/string>
43#include <regex>
Eric Fiseliere047a722016-05-07 03:09:55 +000044
45#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Arthur O'Dwyer6eeaa002022-02-01 20:16:40 -050046# pragma GCC system_header
Eric Fiseliere047a722016-05-07 03:09:55 +000047#endif
48
49_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
50
Mark de Weverc682d322022-08-24 20:22:22 +020051#ifndef _LIBCPP_CXX03_LANG
52
Eric Fiseliere047a722016-05-07 03:09:55 +000053template <class _BiDirIter>
54using match_results =
55 _VSTD::match_results<_BiDirIter,
56 polymorphic_allocator<_VSTD::sub_match<_BiDirIter>>>;
57
58typedef match_results<const char*> cmatch;
Eric Fiseliere047a722016-05-07 03:09:55 +000059typedef match_results<_VSTD_LFTS_PMR::string::const_iterator> smatch;
Louis Dionne89258142021-08-23 15:32:36 -040060#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
61typedef match_results<const wchar_t*> wcmatch;
Eric Fiseliere047a722016-05-07 03:09:55 +000062typedef match_results<_VSTD_LFTS_PMR::wstring::const_iterator> wsmatch;
Louis Dionne89258142021-08-23 15:32:36 -040063#endif
Eric Fiseliere047a722016-05-07 03:09:55 +000064
Mark de Weverc682d322022-08-24 20:22:22 +020065#endif // _LIBCPP_CXX03_LANG
66
Eric Fiseliere047a722016-05-07 03:09:55 +000067_LIBCPP_END_NAMESPACE_LFTS_PMR
68
69#endif /* _LIBCPP_EXPERIMENTAL_REGEX */