// -*- C++ -*- // Copyright (C) 2007-2024 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // . /** @file include/regex * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_REGEX #define _GLIBCXX_REGEX 1 #pragma GCC system_header #include // string and container heavy #if __cplusplus < 201103L # include #else #include #include #include #include #include #include #include #include #include #include #include // std::copy, std::fill_n #include // std::sort, std::unique #include // std::iterator_traits #include #include #include #include #include #include #ifdef _GLIBCXX_DEBUG # include #endif #include #include #include #include #include #include #include #define __glibcxx_want_nonmember_container_access #include #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI #include namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace pmr { template using match_results = std::match_results<_BidirectionalIterator, polymorphic_allocator< sub_match<_BidirectionalIterator>>>; using cmatch = match_results; // Use __normal_iterator directly, because pmr::string::const_iterator // would require pmr::polymorphic_allocator to be complete. using smatch = match_results<__gnu_cxx::__normal_iterator>; #ifdef _GLIBCXX_USE_WCHAR_T using wcmatch = match_results; using wsmatch = match_results<__gnu_cxx::__normal_iterator>; #endif } // namespace pmr _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // C++17 #endif // C++11 #endif // _GLIBCXX_REGEX