命名空间
变体
动作

std::bad_expected_access

来自 cppreference.com
< cpp‎ | utility‎ | expected
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
在头文件 <expected> 中定义
template< class E >
class bad_expected_access : public std::bad_expected_access<void>
(1) (自 C++23 起)
template<>
class bad_expected_access<void> : public std::exception
(2) (自 C++23 起)
1) 定义了一种对象类型,由 std::expected::value 在访问包含意外值的 expected 对象时抛出。bad_expected_access<E> 存储了意外值的副本。
2) bad_expected_access<void> 是所有其他 bad_expected_access 特化的基类。

内容

[编辑] 主模板的成员

(构造函数)
构造 bad_expected_access 对象
(公共成员函数)
error
返回存储的值
(公共成员函数)
what
返回解释性字符串
(公共成员函数)

std::bad_expected_access::bad_expected_access

explicit bad_expected_access( E e );

构造一个新的 bad_expected_access<E> 对象。用 std::move(e) 初始化存储的值。

std::bad_expected_access::error

const E& error() const & noexcept;

E& error() & noexcept;
const E&& error() const && noexcept;

E&& error() && noexcept;

返回对存储值的引用。

std::bad_expected_access::what

const char* what() const noexcept override;

返回解释性字符串。

参数

(无)

返回值

指向具有解释性信息的以空字符结尾的字符串的指针。该字符串适合转换为 std::wstring 并显示。该指针保证至少在获得该指针的异常对象被销毁之前,或者在异常对象的非 const 成员函数(例如复制赋值运算符)被调用之前有效。

备注

允许实现但不要求覆盖 what()

[编辑] bad_expected_access<void> 特化的成员

(构造函数)
构造 bad_expected_access<void> 对象
(受保护成员函数)
(析构函数)
销毁 bad_expected_access<void> 对象
(受保护成员函数)
operator=
替换 bad_expected_access<void> 对象
(受保护成员函数)
what
返回解释性字符串
(公共成员函数)

bad_expected_access<void> 的特殊成员函数是受保护的。它们只能由派生类调用。

[编辑] 示例