1 | //Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc. |
2 | |
3 | //Distributed under the Boost Software License, Version 1.0. (See accompanying |
4 | //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
5 | |
6 | #ifndef UUID_CE6983AC753411DDA764247956D89593 |
7 | #define UUID_CE6983AC753411DDA764247956D89593 |
8 | #if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
9 | #pragma GCC system_header |
10 | #endif |
11 | #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
12 | #pragma warning(push,1) |
13 | #endif |
14 | |
15 | #include <string> |
16 | |
17 | namespace |
18 | boost |
19 | { |
20 | namespace |
21 | exception_detail |
22 | { |
23 | class |
24 | error_info_base |
25 | { |
26 | public: |
27 | |
28 | virtual std::string name_value_string() const = 0; |
29 | |
30 | protected: |
31 | |
32 | virtual |
33 | ~error_info_base() throw() |
34 | { |
35 | } |
36 | }; |
37 | } |
38 | |
39 | template <class Tag,class T> |
40 | class |
41 | error_info: |
42 | public exception_detail::error_info_base |
43 | { |
44 | public: |
45 | |
46 | typedef T value_type; |
47 | |
48 | error_info( value_type const & value ); |
49 | ~error_info() throw(); |
50 | |
51 | value_type const & |
52 | value() const |
53 | { |
54 | return value_; |
55 | } |
56 | |
57 | value_type & |
58 | value() |
59 | { |
60 | return value_; |
61 | } |
62 | |
63 | private: |
64 | |
65 | std::string name_value_string() const; |
66 | |
67 | value_type value_; |
68 | }; |
69 | } |
70 | |
71 | #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
72 | #pragma warning(pop) |
73 | #endif |
74 | #endif |
75 | |