File: errorcondition

package info (click to toggle)
c%2B%2B-annotations 11.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 11,244 kB
  • sloc: cpp: 21,698; makefile: 1,505; ansic: 165; sh: 121; perl: 90
file content (43 lines) | stat: -rw-r--r-- 1,102 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    namespace std {
    class error_condition {
        int value_;
        std::error_category *cat_;
    public:
        error_condition()  
        : error_code(0, std::generic_category()) {}

        error_condition(int e, const std::error_category& c)  
        : value_(e), cat_(&c) {}

        template<class E> error_condition(E e) 
        { *this = make_error_condition(e);}

        template<class E> error_condition& operator=(E e) 
        { *this = make_error_condition(e); }

        void assign(int e, const std::error_category& c)  
        { value_ = e; cat_ = &c; }

        void clear()  
        { *this = std::error_condition(); }

        explicit operator bool() const  
        { return value_ != 0; }

        int value() const  
        { return value_; }

        const std::error_category& category() const  
        { return cat_; }

        std::string message() const 
        { return cat_->message(value_); }
    };

    bool operator==(const error_condition& a, const error_condition &b) 
    { return a.value() == b.value() && &a.category() == &b.category();}