11debfc3dSmrg// <regex> -*- C++ -*- 21debfc3dSmrg 3*8feb0f0bSmrg// Copyright (C) 2007-2020 Free Software Foundation, Inc. 41debfc3dSmrg// 51debfc3dSmrg// This file is part of the GNU ISO C++ Library. This library is free 61debfc3dSmrg// software; you can redistribute it and/or modify it under the 71debfc3dSmrg// terms of the GNU General Public License as published by the 81debfc3dSmrg// Free Software Foundation; either version 3, or (at your option) 91debfc3dSmrg// any later version. 101debfc3dSmrg 111debfc3dSmrg// This library is distributed in the hope that it will be useful, 121debfc3dSmrg// but WITHOUT ANY WARRANTY; without even the implied warranty of 131debfc3dSmrg// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 141debfc3dSmrg// GNU General Public License for more details. 151debfc3dSmrg 161debfc3dSmrg// Under Section 7 of GPL version 3, you are granted additional 171debfc3dSmrg// permissions described in the GCC Runtime Library Exception, version 181debfc3dSmrg// 3.1, as published by the Free Software Foundation. 191debfc3dSmrg 201debfc3dSmrg// You should have received a copy of the GNU General Public License and 211debfc3dSmrg// a copy of the GCC Runtime Library Exception along with this program; 221debfc3dSmrg// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 231debfc3dSmrg// <http://www.gnu.org/licenses/>. 241debfc3dSmrg 251debfc3dSmrg/** @file include/regex 261debfc3dSmrg * This is a Standard C++ Library header. 271debfc3dSmrg */ 281debfc3dSmrg 291debfc3dSmrg#ifndef _GLIBCXX_REGEX 301debfc3dSmrg#define _GLIBCXX_REGEX 1 311debfc3dSmrg 321debfc3dSmrg#pragma GCC system_header 331debfc3dSmrg 341debfc3dSmrg#if __cplusplus < 201103L 351debfc3dSmrg# include <bits/c++0x_warning.h> 361debfc3dSmrg#else 371debfc3dSmrg 381debfc3dSmrg#include <algorithm> 391debfc3dSmrg#include <bitset> 401debfc3dSmrg#ifdef _GLIBCXX_DEBUG 411debfc3dSmrg# include <iosfwd> 421debfc3dSmrg#endif 431debfc3dSmrg#include <iterator> 441debfc3dSmrg#include <locale> 451debfc3dSmrg#include <memory> 461debfc3dSmrg#include <sstream> 471debfc3dSmrg#include <stack> 481debfc3dSmrg#include <stdexcept> 491debfc3dSmrg#include <string> 501debfc3dSmrg#include <utility> 511debfc3dSmrg#include <vector> 521debfc3dSmrg#include <map> 531debfc3dSmrg#include <cstring> 541debfc3dSmrg 551debfc3dSmrg#include <ext/aligned_buffer.h> 561debfc3dSmrg#include <bits/std_function.h> 571debfc3dSmrg#include <bits/regex_constants.h> 581debfc3dSmrg#include <bits/regex_error.h> 591debfc3dSmrg#include <bits/regex_automaton.h> 601debfc3dSmrg#include <bits/regex_scanner.h> 611debfc3dSmrg#include <bits/regex_compiler.h> 621debfc3dSmrg#include <bits/regex.h> 631debfc3dSmrg#include <bits/regex_executor.h> 641debfc3dSmrg 65c0a68be4Smrg#if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI 66c0a68be4Smrgnamespace std _GLIBCXX_VISIBILITY(default) 67c0a68be4Smrg{ 68c0a68be4Smrg_GLIBCXX_BEGIN_NAMESPACE_VERSION 69*8feb0f0bSmrg namespace pmr 70*8feb0f0bSmrg { 71c0a68be4Smrg template<typename _Tp> class polymorphic_allocator; 72c0a68be4Smrg template<typename _BidirectionalIterator> 73c0a68be4Smrg using match_results 74c0a68be4Smrg = std::match_results<_BidirectionalIterator, polymorphic_allocator< 75c0a68be4Smrg sub_match<_BidirectionalIterator>>>; 76c0a68be4Smrg using cmatch = match_results<const char*>; 77*8feb0f0bSmrg // Use __normal_iterator directly, because pmr::string::const_iterator 78*8feb0f0bSmrg // would require pmr::polymorphic_allocator to be complete. 79*8feb0f0bSmrg using smatch 80*8feb0f0bSmrg = match_results<__gnu_cxx::__normal_iterator<const char*, string>>; 81c0a68be4Smrg#ifdef _GLIBCXX_USE_WCHAR_T 82c0a68be4Smrg using wcmatch = match_results<const wchar_t*>; 83*8feb0f0bSmrg using wsmatch 84*8feb0f0bSmrg = match_results<__gnu_cxx::__normal_iterator<const wchar_t*, wstring>>; 85c0a68be4Smrg#endif 86c0a68be4Smrg } // namespace pmr 87c0a68be4Smrg_GLIBCXX_END_NAMESPACE_VERSION 88c0a68be4Smrg} // namespace std 89c0a68be4Smrg#endif // C++17 901debfc3dSmrg#endif // C++11 911debfc3dSmrg 921debfc3dSmrg#endif // _GLIBCXX_REGEX 93