std::bad_expected_access
Defined in header <expected>
|
||
template< class E > class bad_expected_access : public std::bad_expected_access<void> |
(1) | (since C++23) |
template<> class bad_expected_access<void> : public std::exception |
(2) | (since C++23) |
bad_expected_access<E>
stores a copy of the unexpected value.bad_expected_access
specializations.
All member functions of std::bad_expected_access are constexpr: it is possible to create and use std::bad_expected_access objects in the evaluation of a constant expression.However, |
(since C++26) |
This section is incomplete Reason: inheritance diagram |
Contents |
[edit] Members of the primary template
(constructor) |
constructs a bad_expected_access object (public member function) |
error |
returns the stored value (public member function) |
what |
returns the explanatory string (public member function) |
std::bad_expected_access::bad_expected_access
explicit bad_expected_access( E e ); |
(since C++23) (constexpr since C++26) |
|
Constructs a new bad_expected_access<E>
object. Initializes the stored value with std::move(e)
.
std::bad_expected_access::error
const E& error() const & noexcept; |
(1) | (since C++23) (constexpr since C++26) |
E& error() & noexcept; |
(2) | (since C++23) (constexpr since C++26) |
const E&& error() const && noexcept; |
(3) | (since C++23) (constexpr since C++26) |
E&& error() && noexcept; |
(4) | (since C++23) (constexpr since C++26) |
Returns a reference to the stored value.
std::bad_expected_access::what
const char* what() const noexcept override; |
(since C++23) (constexpr since C++26) |
|
Returns the explanatory string.
Return value
Pointer to a null-terminated string with explanatory information. The string is suitable for conversion and display as a std::wstring. The pointer is guaranteed to be valid at least until the exception object from which it is obtained is destroyed, or until a non-const member function (e.g., copy assignment operator) on the exception object is called.
The returned string is encoded with the ordinary literal encoding during constant evaluation. |
(since C++26) |
Notes
Implementations are allowed but not required to override what()
.
Inherited from std::bad_expected_access<void>
Members of the bad_expected_access<void> specialization
(constructor) |
constructs a bad_expected_access<void> object (protected member function) |
(destructor) |
destroys the bad_expected_access<void> object (protected member function) |
operator= |
replaces the bad_expected_access<void> object (protected member function) |
what |
returns the explanatory string (public member function) |
Special member functions of bad_expected_access<void> are protected. They can only be called by derived classes.
Inherited from std::exception
Member functions
[virtual] |
destroys the exception object (virtual public member function of std::exception )
|
[virtual] |
returns an explanatory string (virtual public member function of std::exception )
|
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_constexpr_exceptions |
202502L |
(C++26) | constexpr std::bad_expected_access
|
[edit] Example
This section is incomplete Reason: no example |
[edit] See also
(C++17) |
exception indicating checked access to an optional that doesn't contain a value (class) |
(C++17) |
exception thrown on invalid accesses to the value of a variant (class) |