NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
error_category.hpp
1#ifndef NEFORCE_CORE_EXCEPTION_ERROR_CATEGORY_HPP__
2#define NEFORCE_CORE_EXCEPTION_ERROR_CATEGORY_HPP__
5NEFORCE_BEGIN_NAMESPACE__
6
7class error_code;
8class error_condition;
9
10class NEFORCE_API error_category : public icomparable<error_category> {
11public:
12 error_category() noexcept = default;
13 virtual ~error_category() noexcept = default;
14
15 error_category(const error_category&) = delete;
16 error_category& operator=(const error_category&) = delete;
17
18 NEFORCE_NODISCARD virtual const char* name() const noexcept = 0;
19 NEFORCE_NODISCARD virtual string message(int32_t ev) const = 0;
20
21 NEFORCE_NODISCARD virtual error_condition default_error_condition(int32_t ev) const noexcept;
22
23 NEFORCE_NODISCARD virtual bool equivalent(int code, const error_condition& condition) const noexcept;
24 NEFORCE_NODISCARD virtual bool equivalent(const error_code& code, int condition) const noexcept;
25
26 NEFORCE_NODISCARD bool equal_to(const error_category& rhs) const noexcept { return this == &rhs; }
27 NEFORCE_NODISCARD bool less_than(const error_category& rhs) const noexcept {
28 return less<const error_category*>()(this, &rhs);
29 }
30};
31
32
33class NEFORCE_API generic_error_category final : public error_category {
34public:
35 NEFORCE_NODISCARD const char* name() const noexcept override { return "generic"; }
36
37 NEFORCE_NODISCARD string message(int32_t ev) const override;
38
39 NEFORCE_NODISCARD error_condition default_error_condition(int32_t ev) const noexcept override;
40};
41
42NEFORCE_API const error_category& generic_category() noexcept;
43
44inline error_code make_error_code(errc e) noexcept;
45inline error_condition make_error_condition(errc e) noexcept;
46
47
48class NEFORCE_API system_error_category final : public error_category {
49public:
50 NEFORCE_NODISCARD const char* name() const noexcept override { return "system"; }
51
52 NEFORCE_NODISCARD string message(int32_t ev) const override;
53
54 NEFORCE_NODISCARD error_condition default_error_condition(int32_t ev) const noexcept override;
55};
56
57NEFORCE_API const error_category& system_category() noexcept;
58
59NEFORCE_END_NAMESPACE__
60#endif // NEFORCE_CORE_EXCEPTION_ERROR_CATEGORY_HPP__
系统错误码枚举
int int32_t
32位有符号整数类型
errc
系统错误码枚举
bool name(char *buffer, size_t size)
获取当前线程名称
字符串类型别名和实用函数
可比较对象接口模板