Code formatting/indentation unified in trunk
[qtrapids] / src / include / qtrapids / error.hpp
1 #ifndef _QTRAPIDS_ERROR_HPP_
2 #define _QTRAPIDS_ERROR_HPP_
3
4 #include <QString>
5
6 namespace qtrapids
7 {
8
9 class Error
10 {
11 public:
12
13     Error()
14             : msg_("")
15     { }
16
17     Error(char const *msg)
18             : msg_(msg)
19     {}
20
21     template <typename T>
22     void append_to_msg(T val)
23     {
24         msg_ << val;
25     }
26
27 private:
28     QString msg_;
29
30 };
31
32 template <typename T>
33 Error& operator << (Error &self, T val)
34 {
35     self.append_to_msg(val);
36     return self;
37 }
38
39 class InvalidArgument : public Error
40 {
41 };
42
43 template <typename T>
44 InvalidArgument& operator << (InvalidArgument &self, T val)
45 {
46     self.append_to_msg(val);
47     return self;
48 }
49
50 }
51
52 #endif // _QTRAPIDS_ERROR_HPP_
53