/
usr
/
include
/
c++
/
9
/
/usr/include/c++/9
mkdir
upload
Name
Size
Mode
Actions
backward/
-
0755
rm
bits/
-
0755
rm
debug/
-
0755
rm
decimal/
-
0755
rm
experimental/
-
0755
rm
ext/
-
0755
rm
parallel/
-
0755
rm
profile/
-
0755
rm
pstl/
-
0755
rm
tr1/
-
0755
rm
tr2/
-
0755
rm
algorithm
2983
0644
edit
dl
rm
any
18885
0644
edit
dl
rm
array
11676
0644
edit
dl
rm
atomic
43610
0644
edit
dl
rm
bit
10295
0644
edit
dl
rm
bitset
46001
0644
edit
dl
rm
cassert
1648
0644
edit
dl
rm
ccomplex
1335
0644
edit
dl
rm
cctype
2409
0644
edit
dl
rm
cerrno
1770
0644
edit
dl
rm
cfenv
2051
0644
edit
dl
rm
cfloat
1889
0644
edit
dl
rm
charconv
16884
0644
edit
dl
rm
chrono
29881
0644
edit
dl
rm
cinttypes
2157
0644
edit
dl
rm
ciso646
1464
0644
edit
dl
rm
climits
1913
0644
edit
dl
rm
clocale
1905
0644
edit
dl
rm
cmath
49130
0644
edit
dl
rm
codecvt
5275
0644
edit
dl
rm
complex
56602
0644
edit
dl
rm
complex.h
1596
0644
edit
dl
rm
condition_variable
9302
0644
edit
dl
rm
csetjmp
1949
0644
edit
dl
rm
csignal
1855
0644
edit
dl
rm
cstdalign
1407
0644
edit
dl
rm
cstdarg
1868
0644
edit
dl
rm
cstdbool
1401
0644
edit
dl
rm
cstddef
6660
0644
edit
dl
rm
cstdint
2335
0644
edit
dl
rm
cstdio
4439
0644
edit
dl
rm
cstdlib
6325
0644
edit
dl
rm
cstring
3156
0644
edit
dl
rm
ctgmath
1360
0644
edit
dl
rm
ctime
2298
0644
edit
dl
rm
cuchar
2210
0644
edit
dl
rm
cwchar
6542
0644
edit
dl
rm
cwctype
2793
0644
edit
dl
rm
cxxabi.h
22011
0644
edit
dl
rm
deque
4031
0644
edit
dl
rm
exception
4804
0644
edit
dl
rm
execution
1807
0644
edit
dl
rm
fenv.h
2020
0644
edit
dl
rm
filesystem
1438
0644
edit
dl
rm
forward_list
2755
0644
edit
dl
rm
fstream
40561
0644
edit
dl
rm
functional
41050
0644
edit
dl
rm
future
50536
0644
edit
dl
rm
initializer_list
2974
0644
edit
dl
rm
iomanip
16547
0644
edit
dl
rm
ios
1601
0644
edit
dl
rm
iosfwd
6918
0644
edit
dl
rm
iostream
2697
0644
edit
dl
rm
istream
32857
0644
edit
dl
rm
iterator
2771
0644
edit
dl
rm
limits
71808
0644
edit
dl
rm
list
3714
0644
edit
dl
rm
locale
1488
0644
edit
dl
rm
map
3985
0644
edit
dl
rm
math.h
4573
0644
edit
dl
rm
memory
12936
0644
edit
dl
rm
memory_resource
20468
0644
edit
dl
rm
mutex
18181
0644
edit
dl
rm
new
8010
0644
edit
dl
rm
numeric
25115
0644
edit
dl
rm
optional
37857
0644
edit
dl
rm
ostream
22227
0644
edit
dl
rm
queue
2467
0644
edit
dl
rm
random
1692
0644
edit
dl
rm
ratio
19837
0644
edit
dl
rm
regex
2648
0644
edit
dl
rm
scoped_allocator
17148
0644
edit
dl
rm
set
3855
0644
edit
dl
rm
shared_mutex
21948
0644
edit
dl
rm
sstream
28524
0644
edit
dl
rm
stack
2391
0644
edit
dl
rm
stdexcept
9878
0644
edit
dl
rm
stdlib.h
2248
0644
edit
dl
rm
streambuf
29990
0644
edit
dl
rm
string
4645
0644
edit
dl
rm
string_view
22858
0644
edit
dl
rm
system_error
11670
0644
edit
dl
rm
tgmath.h
1360
0644
edit
dl
rm
thread
10356
0644
edit
dl
rm
tuple
60939
0644
edit
dl
rm
typeindex
3093
0644
edit
dl
rm
typeinfo
7692
0644
edit
dl
rm
type_traits
90165
0644
edit
dl
rm
unordered_map
3533
0644
edit
dl
rm
unordered_set
3406
0644
edit
dl
rm
utility
12528
0644
edit
dl
rm
valarray
40364
0644
edit
dl
rm
variant
58618
0644
edit
dl
rm
vector
4334
0644
edit
dl
rm
version
6733
0644
edit
dl
rm
Edit:
/usr/include/c++/9/system_error
(11670B)
// <system_error> -*- C++ -*- // Copyright (C) 2007-2019 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 // <http://www.gnu.org/licenses/>. /** @file include/system_error * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_SYSTEM_ERROR #define _GLIBCXX_SYSTEM_ERROR 1 #pragma GCC system_header #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else #include <bits/c++config.h> #include <bits/error_constants.h> #include <iosfwd> #include <stdexcept> namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION class error_code; class error_condition; class system_error; /// is_error_code_enum template<typename _Tp> struct is_error_code_enum : public false_type { }; /// is_error_condition_enum template<typename _Tp> struct is_error_condition_enum : public false_type { }; template<> struct is_error_condition_enum<errc> : public true_type { }; #if __cplusplus > 201402L template <typename _Tp> inline constexpr bool is_error_code_enum_v = is_error_code_enum<_Tp>::value; template <typename _Tp> inline constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; #endif // C++17 inline namespace _V2 { /// error_category class error_category { public: constexpr error_category() noexcept = default; virtual ~error_category(); error_category(const error_category&) = delete; error_category& operator=(const error_category&) = delete; virtual const char* name() const noexcept = 0; // We need two different virtual functions here, one returning a // COW string and one returning an SSO string. Their positions in the // vtable must be consistent for dynamic dispatch to work, but which one // the name "message()" finds depends on which ABI the caller is using. #if _GLIBCXX_USE_CXX11_ABI private: _GLIBCXX_DEFAULT_ABI_TAG virtual __cow_string _M_message(int) const; public: _GLIBCXX_DEFAULT_ABI_TAG virtual string message(int) const = 0; #else virtual string message(int) const = 0; private: virtual __sso_string _M_message(int) const; #endif public: virtual error_condition default_error_condition(int __i) const noexcept; virtual bool equivalent(int __i, const error_condition& __cond) const noexcept; virtual bool equivalent(const error_code& __code, int __i) const noexcept; bool operator<(const error_category& __other) const noexcept { return less<const error_category*>()(this, &__other); } bool operator==(const error_category& __other) const noexcept { return this == &__other; } bool operator!=(const error_category& __other) const noexcept { return this != &__other; } }; // DR 890. _GLIBCXX_CONST const error_category& system_category() noexcept; _GLIBCXX_CONST const error_category& generic_category() noexcept; } // end inline namespace error_code make_error_code(errc) noexcept; template<typename _Tp> struct hash; /// error_code // Implementation-specific error identification struct error_code { error_code() noexcept : _M_value(0), _M_cat(&system_category()) { } error_code(int __v, const error_category& __cat) noexcept : _M_value(__v), _M_cat(&__cat) { } template<typename _ErrorCodeEnum, typename = typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value>::type> error_code(_ErrorCodeEnum __e) noexcept { *this = make_error_code(__e); } void assign(int __v, const error_category& __cat) noexcept { _M_value = __v; _M_cat = &__cat; } void clear() noexcept { assign(0, system_category()); } // DR 804. template<typename _ErrorCodeEnum> typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value, error_code&>::type operator=(_ErrorCodeEnum __e) noexcept { return *this = make_error_code(__e); } int value() const noexcept { return _M_value; } const error_category& category() const noexcept { return *_M_cat; } error_condition default_error_condition() const noexcept; _GLIBCXX_DEFAULT_ABI_TAG string message() const { return category().message(value()); } explicit operator bool() const noexcept { return _M_value != 0; } // DR 804. private: friend class hash<error_code>; int _M_value; const error_category* _M_cat; }; // 19.4.2.6 non-member functions inline error_code make_error_code(errc __e) noexcept { return error_code(static_cast<int>(__e), generic_category()); } inline bool operator<(const error_code& __lhs, const error_code& __rhs) noexcept { return (__lhs.category() < __rhs.category() || (__lhs.category() == __rhs.category() && __lhs.value() < __rhs.value())); } template<typename _CharT, typename _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) { return (__os << __e.category().name() << ':' << __e.value()); } error_condition make_error_condition(errc) noexcept; /// error_condition // Portable error identification struct error_condition { error_condition() noexcept : _M_value(0), _M_cat(&generic_category()) { } error_condition(int __v, const error_category& __cat) noexcept : _M_value(__v), _M_cat(&__cat) { } template<typename _ErrorConditionEnum, typename = typename enable_if<is_error_condition_enum<_ErrorConditionEnum>::value>::type> error_condition(_ErrorConditionEnum __e) noexcept { *this = make_error_condition(__e); } void assign(int __v, const error_category& __cat) noexcept { _M_value = __v; _M_cat = &__cat; } // DR 804. template<typename _ErrorConditionEnum> typename enable_if<is_error_condition_enum <_ErrorConditionEnum>::value, error_condition&>::type operator=(_ErrorConditionEnum __e) noexcept { return *this = make_error_condition(__e); } void clear() noexcept { assign(0, generic_category()); } // 19.4.3.4 observers int value() const noexcept { return _M_value; } const error_category& category() const noexcept { return *_M_cat; } _GLIBCXX_DEFAULT_ABI_TAG string message() const { return category().message(value()); } explicit operator bool() const noexcept { return _M_value != 0; } // DR 804. private: int _M_value; const error_category* _M_cat; }; // 19.4.3.6 non-member functions inline error_condition make_error_condition(errc __e) noexcept { return error_condition(static_cast<int>(__e), generic_category()); } inline bool operator<(const error_condition& __lhs, const error_condition& __rhs) noexcept { return (__lhs.category() < __rhs.category() || (__lhs.category() == __rhs.category() && __lhs.value() < __rhs.value())); } // 19.4.4 Comparison operators inline bool operator==(const error_code& __lhs, const error_code& __rhs) noexcept { return (__lhs.category() == __rhs.category() && __lhs.value() == __rhs.value()); } inline bool operator==(const error_code& __lhs, const error_condition& __rhs) noexcept { return (__lhs.category().equivalent(__lhs.value(), __rhs) || __rhs.category().equivalent(__lhs, __rhs.value())); } inline bool operator==(const error_condition& __lhs, const error_code& __rhs) noexcept { return (__rhs.category().equivalent(__rhs.value(), __lhs) || __lhs.category().equivalent(__rhs, __lhs.value())); } inline bool operator==(const error_condition& __lhs, const error_condition& __rhs) noexcept { return (__lhs.category() == __rhs.category() && __lhs.value() == __rhs.value()); } inline bool operator!=(const error_code& __lhs, const error_code& __rhs) noexcept { return !(__lhs == __rhs); } inline bool operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept { return !(__lhs == __rhs); } inline bool operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept { return !(__lhs == __rhs); } inline bool operator!=(const error_condition& __lhs, const error_condition& __rhs) noexcept { return !(__lhs == __rhs); } /** * @brief Thrown to indicate error code of underlying system. * * @ingroup exceptions */ class system_error : public std::runtime_error { private: error_code _M_code; public: system_error(error_code __ec = error_code()) : runtime_error(__ec.message()), _M_code(__ec) { } system_error(error_code __ec, const string& __what) : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } system_error(error_code __ec, const char* __what) : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } system_error(int __v, const error_category& __ecat, const char* __what) : system_error(error_code(__v, __ecat), __what) { } system_error(int __v, const error_category& __ecat) : runtime_error(error_code(__v, __ecat).message()), _M_code(__v, __ecat) { } system_error(int __v, const error_category& __ecat, const string& __what) : runtime_error(__what + ": " + error_code(__v, __ecat).message()), _M_code(__v, __ecat) { } #if __cplusplus >= 201103L system_error (const system_error &) = default; system_error &operator= (const system_error &) = default; #endif virtual ~system_error() noexcept; const error_code& code() const noexcept { return _M_code; } }; _GLIBCXX_END_NAMESPACE_VERSION } // namespace #include <bits/functional_hash.h> namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifndef _GLIBCXX_COMPATIBILITY_CXX0X // DR 1182. /// std::hash specialization for error_code. template<> struct hash<error_code> : public __hash_base<size_t, error_code> { size_t operator()(const error_code& __e) const noexcept { const size_t __tmp = std::_Hash_impl::hash(__e._M_value); return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); } }; #endif // _GLIBCXX_COMPATIBILITY_CXX0X #if __cplusplus > 201402L // DR 2686. /// std::hash specialization for error_condition. template<> struct hash<error_condition> : public __hash_base<size_t, error_condition> { size_t operator()(const error_condition& __e) const noexcept { const size_t __tmp = std::_Hash_impl::hash(__e.value()); return std::_Hash_impl::__hash_combine(__e.category(), __tmp); } }; #endif _GLIBCXX_END_NAMESPACE_VERSION } // namespace #endif // C++11 #endif // _GLIBCXX_SYSTEM_ERROR
Save
cmd:
run