命名空间
变体
操作

std::error_condition

来自 cppreference.com
< cpp‎ | error
 
 
实用程序库
语言支持
类型支持 (基本类型,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)

 
 
 
定义在头文件 <system_error>
class error_condition;
(自 C++11 起)

std::error_condition 保存一个与平台无关的值,用于标识错误条件。与 std::error_code 一样,它由一个整数值和一个 std::error_category 唯一标识,但与 std::error_code 不同,该值与平台无关。

典型实现包含一个整型数据成员(值)和一个指向 std::error_category 的指针。

内容

[编辑] 成员函数

构造一个 error_condition
(公有成员函数) [编辑]
替换内容
(公有成员函数) [编辑]
替换内容
(公有成员函数) [编辑]
error_condition 设置为 generic_category 中的值 0
(公有成员函数) [编辑]
获取 error_condition 的值
(公有成员函数) [编辑]
获取此 error_conditionerror_category
(公有成员函数) [编辑]
获取解释性字符串
(公有成员函数) [编辑]
检查值是否非零
(公有成员函数) [编辑]

[编辑] 非成员函数

(C++20 中已移除)(C++20 中已移除)(C++20)
比较 error_conditionerror_code
(函数) [编辑]

[编辑] 辅助类

将枚举标识为 std::error_condition
(类模板) [编辑]
std::error_condition 的哈希支持
(类模板特化) [编辑]

[编辑] 说明

比较 std::error_codestd::error_condition 是由它们的错误类别定义的。值得注意的是,std::generic_category 的错误条件可能与特定类别(例如 std::system_category)的错误代码相等,如果它们表示同一种错误。

可以通过隐式转换为 std::error_condition,将 std::errc 值与错误代码进行比较。

#include <cerrno>
#include <iostream>
#include <system_error>
#include <Windows.h>
 
int main()
{
    std::error_code ec{ERROR_FILE_EXISTS, std::system_category()};
    std::error_condition econd{EEXIST, std::generic_category()};
 
    std::cout.setf(std::ios::boolalpha);
    std::cout << (ec == econd) << '\n'; // typically true
    std::cout << (ec == std::errc::file_exists) << '\n'; // ditto
    std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false:
                                                                     // different category
}

可能的输出

true
true
false

[编辑] 另请参阅

保存平台相关的错误代码
(类) [编辑]
错误类别的基类
(类) [编辑]
errc 值创建错误条件 e
(函数) [编辑]