~eda-qa/leaflang/cpp

« back to all changes in this revision

Viewing changes to include/lang/cerr.hpp

  • Committer: edA-qa mort-ora-y
  • Date: 2018-04-13 15:16:00 UTC
  • mfrom: (114.1.25 byte_block)
  • Revision ID: eda-qa@disemia.com-20180413151600-dzd5qmj6uizod1kk
merged byte_block stuff

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
struct cerr_base {
97
97
        //which error was encoutnered, cerr_okay if none
98
98
        cerr error;
99
 
        boost::optional<util::logger::item> error_item;
 
99
        std::vector<util::logger::item> log_items;
100
100
        
101
101
        std::string explain_error() const;
102
102
        std::string error_reason() const;
117
117
                error( result ) { 
118
118
        }
119
119
        cerr_base( cerr result, util::logger::item const & item ) : 
120
 
                error( result ), 
121
 
                error_item( item ) { 
 
120
                error( result ) {
 
121
                log_items.push_back( item );
122
122
        }
123
123
        //TODO: deprecated, remove
124
124
        cerr_base( cerr result, std::string const & msg ) : 
125
 
                error( result ), 
126
 
                error_item( util::logger::item_cerr_extra(msg) ) { 
 
125
                error( result ) {
 
126
                log_items.push_back( util::logger::item_cerr_extra(msg) );
127
127
        }
128
128
        
129
129
        cerr_base const & base() const {
140
140
struct cerr_impl : public cerr_base {
141
141
        T result;
142
142
        
143
 
        /*implicit*/ cerr_impl( T const & result )
144
 
                : cerr_base( cerr::okay )
145
 
                , result( result )
146
 
        { }
147
 
        /*implicit*/ cerr_impl( cerr err )
148
 
                : cerr_base( err )
149
 
        { }
150
 
        cerr_impl( cerr err, std::string const & msg )
151
 
                : cerr_base( err, msg )
152
 
        { }
 
143
        /*implicit*/ cerr_impl( T const & result ) : 
 
144
                cerr_base( cerr::okay ), 
 
145
                result( result ) { 
 
146
        }
 
147
        /*implicit*/ cerr_impl( cerr err ) : 
 
148
                cerr_base( err ) { 
 
149
        }
 
150
        cerr_impl( cerr err, std::string const & msg ) : 
 
151
                cerr_base( err, msg ) { 
 
152
        }
 
153
        cerr_impl( cerr err, util::logger::item const & item ) : 
 
154
                cerr_base( err, item ) {
 
155
        }
153
156
        //explicit to prevent accidentla cross-type conversion
154
157
        explicit cerr_impl( cerr_base base )
155
 
                : cerr_base( base )
156
 
        { }
157
 
        cerr_impl() { }
 
158
                : cerr_base( base ) {
 
159
        }
 
160
        cerr_impl() {
 
161
        }
158
162
};
159
163
 
160
164
};