]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/exception/detail/error_info_impl.hpp
Logo AND Algorithmique Numérique Distribuée

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