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
17namespace
18boost
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