]> git.tdb.fi Git - libs/core.git/blob - source/debug/errorreporter.h
Make sure all classes have sensible copy semantics
[libs/core.git] / source / debug / errorreporter.h
1 #ifndef MSP_DEBUG_ERRORREPORTER_H_
2 #define MSP_DEBUG_ERRORREPORTER_H_
3
4 #include <stdexcept>
5 #include <msp/core/noncopyable.h>
6
7 namespace Msp {
8 namespace Debug {
9
10 class ErrorReporter: private NonCopyable
11 {
12 private:
13         ErrorReporter *prev;
14
15         static ErrorReporter *current;
16
17 protected:
18         ErrorReporter();
19 public:
20         virtual ~ErrorReporter();
21
22         static const ErrorReporter *get_current() { return current; }
23
24         virtual bool report_uncaught_exception(const std::exception &) const = 0;
25 };
26
27 } // namespace Debug
28 } // namespace Msp
29
30 #endif