92 void* _M_exception_object;
94 explicit exception_ptr(
void* __e) _GLIBCXX_USE_NOEXCEPT;
96 void _M_addref() _GLIBCXX_USE_NOEXCEPT;
97 void _M_release() _GLIBCXX_USE_NOEXCEPT;
99 void *_M_get()
const _GLIBCXX_NOEXCEPT __attribute__ ((__pure__));
103 template<
typename _Ex>
107 exception_ptr() _GLIBCXX_USE_NOEXCEPT;
109 exception_ptr(
const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
111#if __cplusplus >= 201103L
112 exception_ptr(nullptr_t) noexcept
113 : _M_exception_object(
nullptr)
116 exception_ptr(exception_ptr&& __o) noexcept
117 : _M_exception_object(__o._M_exception_object)
118 { __o._M_exception_object =
nullptr; }
121#if (__cplusplus < 201103L) || defined (_GLIBCXX_EH_PTR_COMPAT)
122 typedef void (exception_ptr::*__safe_bool)();
125 exception_ptr(__safe_bool) _GLIBCXX_USE_NOEXCEPT;
129 operator=(
const exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
131#if __cplusplus >= 201103L
133 operator=(exception_ptr&& __o)
noexcept
135 exception_ptr(
static_cast<exception_ptr&&
>(__o)).swap(*
this);
140 ~exception_ptr() _GLIBCXX_USE_NOEXCEPT;
143 swap(exception_ptr&) _GLIBCXX_USE_NOEXCEPT;
145#ifdef _GLIBCXX_EH_PTR_COMPAT
147 void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT
148 __attribute__ ((__const__));
149 bool operator!()
const _GLIBCXX_USE_NOEXCEPT
150 __attribute__ ((__pure__));
151 operator __safe_bool()
const _GLIBCXX_USE_NOEXCEPT;
154#if __cplusplus >= 201103L
155 explicit operator bool()
const noexcept
156 {
return _M_exception_object; }
159#if __cpp_impl_three_way_comparison >= 201907L \
160 && ! defined _GLIBCXX_EH_PTR_RELOPS_COMPAT
162 operator==(
const exception_ptr&,
const exception_ptr&)
noexcept =
default;
164 friend _GLIBCXX_EH_PTR_USED
bool
165 operator==(
const exception_ptr& __x,
const exception_ptr& __y)
166 _GLIBCXX_USE_NOEXCEPT
167 {
return __x._M_exception_object == __y._M_exception_object; }
169 friend _GLIBCXX_EH_PTR_USED
bool
170 operator!=(
const exception_ptr& __x,
const exception_ptr& __y)
171 _GLIBCXX_USE_NOEXCEPT
172 {
return __x._M_exception_object != __y._M_exception_object; }
176 __cxa_exception_type()
const _GLIBCXX_USE_NOEXCEPT
177 __attribute__ ((__pure__));