/extlibs/Boost/include/boost/exception/detail/error_info_impl.hpp
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