Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef UUID_CE6983AC753411DDA764247956D89593
00007 #define UUID_CE6983AC753411DDA764247956D89593
00008
00009 #include <string>
00010
00011 namespace
00012 boost
00013 {
00014 namespace
00015 exception_detail
00016 {
00017 class
00018 error_info_base
00019 {
00020 public:
00021
00022 virtual char const * tag_typeid_name() const = 0;
00023 virtual std::string value_as_string() const = 0;
00024
00025 protected:
00026
00027 virtual
00028 ~error_info_base() throw()
00029 {
00030 }
00031 };
00032 }
00033
00034 template <class Tag,class T>
00035 class
00036 error_info:
00037 public exception_detail::error_info_base
00038 {
00039 public:
00040
00041 typedef T value_type;
00042
00043 error_info( value_type const & value );
00044 ~error_info() throw();
00045
00046 value_type const &
00047 value() const
00048 {
00049 return value_;
00050 }
00051
00052 private:
00053
00054 char const * tag_typeid_name() const;
00055 std::string value_as_string() const;
00056
00057 value_type const value_;
00058 };
00059 }
00060
00061 #endif