xref: /openbsd-src/gnu/llvm/libcxx/include/experimental/regex (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
146035553Spatrick// -*- C++ -*-
2*4bdff4beSrobert//===----------------------------------------------------------------------===//
346035553Spatrick//
446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
546035553Spatrick// See https://llvm.org/LICENSE.txt for license information.
646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
746035553Spatrick//
846035553Spatrick//===----------------------------------------------------------------------===//
946035553Spatrick
1046035553Spatrick#ifndef _LIBCPP_EXPERIMENTAL_REGEX
1146035553Spatrick#define _LIBCPP_EXPERIMENTAL_REGEX
12*4bdff4beSrobert
1346035553Spatrick/*
1446035553Spatrick    experimental/regex synopsis
1546035553Spatrick
1646035553Spatrick// C++1z
1746035553Spatricknamespace std {
1846035553Spatricknamespace experimental {
1946035553Spatrickinline namespace fundamentals_v1 {
2046035553Spatricknamespace pmr {
2146035553Spatrick
2246035553Spatrick  template <class BidirectionalIterator>
2346035553Spatrick  using match_results =
2446035553Spatrick    std::match_results<BidirectionalIterator,
2546035553Spatrick                       polymorphic_allocator<sub_match<BidirectionalIterator>>>;
2646035553Spatrick
2746035553Spatrick  typedef match_results<const char*> cmatch;
2846035553Spatrick  typedef match_results<const wchar_t*> wcmatch;
2946035553Spatrick  typedef match_results<string::const_iterator> smatch;
3046035553Spatrick  typedef match_results<wstring::const_iterator> wsmatch;
3146035553Spatrick
3246035553Spatrick} // namespace pmr
3346035553Spatrick} // namespace fundamentals_v1
3446035553Spatrick} // namespace experimental
3546035553Spatrick} // namespace std
3646035553Spatrick
3746035553Spatrick */
3846035553Spatrick
39*4bdff4beSrobert#include <__assert> // all public C++ headers provide the assertion handler
4046035553Spatrick#include <experimental/__config>
4146035553Spatrick#include <experimental/memory_resource>
42*4bdff4beSrobert#include <experimental/string>
43*4bdff4beSrobert#include <regex>
4446035553Spatrick
4546035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
4646035553Spatrick#  pragma GCC system_header
4746035553Spatrick#endif
4846035553Spatrick
4946035553Spatrick_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
5046035553Spatrick
51*4bdff4beSrobert#ifndef _LIBCPP_CXX03_LANG
52*4bdff4beSrobert
5346035553Spatricktemplate <class _BiDirIter>
5446035553Spatrickusing match_results =
5546035553Spatrick    _VSTD::match_results<_BiDirIter,
5646035553Spatrick        polymorphic_allocator<_VSTD::sub_match<_BiDirIter>>>;
5746035553Spatrick
58*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("cmatch") typedef match_results<const char*> cmatch;
59*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("smatch") typedef match_results<_VSTD_LFTS_PMR::string::const_iterator> smatch;
60*4bdff4beSrobert#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
61*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wcmatch") typedef match_results<const wchar_t*> wcmatch;
62*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wsmatch") typedef match_results<_VSTD_LFTS_PMR::wstring::const_iterator> wsmatch;
63*4bdff4beSrobert#endif
64*4bdff4beSrobert
65*4bdff4beSrobert#endif // _LIBCPP_CXX03_LANG
6646035553Spatrick
6746035553Spatrick_LIBCPP_END_NAMESPACE_LFTS_PMR
6846035553Spatrick
6946035553Spatrick#endif /* _LIBCPP_EXPERIMENTAL_REGEX */
70