Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/c++/13/bits/regex_error.h
$ cat -n /usr/include/c++/13/bits/regex_error.h 1 // Errors for std::regex -*- C++ -*- 2 3 // Copyright (C) 2010-2023 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the 7 // terms of the GNU General Public License as published by the 8 // Free Software Foundation; either version 3, or (at your option) 9 // any later version. 10 11 // This library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // Under Section 7 of GPL version 3, you are granted additional 17 // permissions described in the GCC Runtime Library Exception, version 18 // 3.1, as published by the Free Software Foundation. 19 20 // You should have received a copy of the GNU General Public License and 21 // a copy of the GCC Runtime Library Exception along with this program; 22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 //
. 24 25 /** 26 * @file bits/regex_error.h 27 * @brief Error and exception objects for the std regex library. 28 * 29 * This is an internal header file, included by other library headers. 30 * Do not attempt to use it directly. @headername{regex} 31 */ 32 33 namespace std _GLIBCXX_VISIBILITY(default) 34 { 35 _GLIBCXX_BEGIN_NAMESPACE_VERSION 36 37 /** 38 * @addtogroup regex 39 * @{ 40 */ 41 42 namespace regex_constants 43 { 44 /** 45 * @name 5.3 Error Types 46 */ 47 ///@{ 48 49 enum error_type 50 { 51 _S_error_collate, // XXX should have been a non-zero value 52 _S_error_ctype, 53 _S_error_escape, 54 _S_error_backref, 55 _S_error_brack, 56 _S_error_paren, 57 _S_error_brace, 58 _S_error_badbrace, 59 _S_error_range, 60 _S_error_space, 61 _S_error_badrepeat, 62 _S_error_complexity, 63 _S_error_stack, 64 _S_null, 65 _S_grammar 66 }; 67 68 /** The expression contained an invalid collating element name. */ 69 _GLIBCXX17_INLINE constexpr error_type error_collate(_S_error_collate); 70 71 /** The expression contained an invalid character class name. */ 72 _GLIBCXX17_INLINE constexpr error_type error_ctype(_S_error_ctype); 73 74 /** 75 * The expression contained an invalid escaped character, or a trailing 76 * escape. 77 */ 78 _GLIBCXX17_INLINE constexpr error_type error_escape(_S_error_escape); 79 80 /** The expression contained an invalid back reference. */ 81 _GLIBCXX17_INLINE constexpr error_type error_backref(_S_error_backref); 82 83 /** The expression contained mismatched [ and ]. */ 84 _GLIBCXX17_INLINE constexpr error_type error_brack(_S_error_brack); 85 86 /** The expression contained mismatched ( and ). */ 87 _GLIBCXX17_INLINE constexpr error_type error_paren(_S_error_paren); 88 89 /** The expression contained mismatched { and } */ 90 _GLIBCXX17_INLINE constexpr error_type error_brace(_S_error_brace); 91 92 /** The expression contained an invalid range in a {} expression. */ 93 _GLIBCXX17_INLINE constexpr error_type error_badbrace(_S_error_badbrace); 94 95 /** 96 * The expression contained an invalid character range, 97 * such as [b-a] in most encodings. 98 */ 99 _GLIBCXX17_INLINE constexpr error_type error_range(_S_error_range); 100 101 /** 102 * There was insufficient memory to convert the expression into a 103 * finite state machine. 104 */ 105 _GLIBCXX17_INLINE constexpr error_type error_space(_S_error_space); 106 107 /** 108 * One of
*?+{
was not preceded by a valid regular expression. 109 */ 110 _GLIBCXX17_INLINE constexpr error_type error_badrepeat(_S_error_badrepeat); 111 112 /** 113 * The complexity of an attempted match against a regular expression 114 * exceeded a pre-set level. 115 */ 116 _GLIBCXX17_INLINE constexpr error_type error_complexity(_S_error_complexity); 117 118 /** 119 * There was insufficient memory to determine whether the 120 * regular expression could match the specified character sequence. 121 */ 122 _GLIBCXX17_INLINE constexpr error_type error_stack(_S_error_stack); 123 124 ///@} 125 } // namespace regex_constants 126 127 // [7.8] Class regex_error 128 /** 129 * @brief A regular expression exception class. 130 * @ingroup exceptions 131 * 132 * The regular expression library throws objects of this class on error. 133 * 134 * @headerfile regex 135 * @since C++11 136 */ 137 class regex_error : public std::runtime_error 138 { 139 using error_type = regex_constants::error_type; 140 141 error_type _M_code; 142 143 public: 144 /** 145 * @brief Constructs a regex_error object. 146 * 147 * @param __ecode the regex error code. 148 */ 149 explicit 150 regex_error(error_type __ecode); 151 152 virtual ~regex_error() throw(); 153 154 /** 155 * @brief Gets the regex error code. 156 * 157 * @returns the regex error code. 158 */ 159 regex_constants::error_type 160 code() const noexcept 161 { return _M_code; } 162 163 private: 164 /// @cond undocumented 165 regex_error(error_type __ecode, const char* __what) 166 : std::runtime_error(__what), _M_code(__ecode) 167 { } 168 169 [[__noreturn__]] 170 friend void 171 __throw_regex_error(error_type __ecode __attribute__((__unused__)), 172 const char* __what __attribute__((__unused__))) 173 { _GLIBCXX_THROW_OR_ABORT(regex_error(__ecode, __what)); } 174 /// @endcond 175 }; 176 177 /// @cond undocumented 178 179 [[__noreturn__]] 180 void 181 __throw_regex_error(regex_constants::error_type __ecode); 182 183 [[__noreturn__]] 184 inline void 185 __throw_regex_error(regex_constants::error_type __ecode, const char* __what); 186 187 /// @endcond 188 189 ///@} // group regex 190 191 _GLIBCXX_END_NAMESPACE_VERSION 192 } // namespace std
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™