.TH "__gnu_cxx::recursive_init_error" 3cxx "Sat Aug 14 2021" "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME __gnu_cxx::recursive_init_error \- Exception thrown by __cxa_guard_acquire\&. .SH SYNOPSIS .br .PP .PP Inherits \fBstd::exception\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual const char * \fBwhat\fP () const _GLIBCXX_TXN_SAFE_DYN noexcept" .br .in -1c .SH "Detailed Description" .PP Exception thrown by __cxa_guard_acquire\&. C++ 2011 6\&.7 [stmt\&.dcl]/4: If control re-enters the declaration recursively while the variable is being initialized, the behavior is undefined\&. .PP Since we already have a library function to handle locking, we might as well check for this situation and throw an exception\&. We use the second byte of the guard variable to remember that we're in the middle of an initialization\&. .PP Definition at line 696 of file cxxabi\&.h\&. .SH "Member Function Documentation" .PP .SS "virtual const char* std::exception::what () const\fC [virtual]\fP, \fC [noexcept]\fP, \fC [inherited]\fP" Returns a C-style character string describing the general cause of the current error\&. .PP Reimplemented in \fBstd::bad_typeid\fP, \fBstd::bad_cast\fP, \fBstd::future_error\fP, \fBstd::experimental::fundamentals_v1::bad_any_cast\fP, \fBstd::bad_function_call\fP, \fBstd::bad_weak_ptr\fP, \fBstd::bad_exception\fP, \fBstd::runtime_error\fP, \fBstd::logic_error\fP, \fBstd::bad_alloc\fP, and \fBstd::ios_base::failure\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.