PageRenderTime 21ms CodeModel.GetById 17ms app.highlight 3ms RepoModel.GetById 0ms app.codeStats 0ms

/extlibs/Boost/include/boost/exception/detail/error_info_impl.hpp

https://bitbucket.org/hugoruscitti/pilascpp
C++ Header | 75 lines | 56 code | 16 blank | 3 comment | 3 complexity | 1a5a9ee6a3be18b0114ab1f1b3ffc902 MD5 | raw file
 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 defined(__GNUC__) && !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 tag_typeid_name() const = 0;
29            virtual std::string value_as_string() const = 0;
30
31            protected:
32
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 tag_typeid_name() const;
66        std::string value_as_string() const;
67
68        value_type value_;
69        };
70    }
71
72#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
73#pragma warning(pop)
74#endif
75#endif