bug fix in the decoupling of info.hpp from get_error_info.hpp.

[SVN r48551]
This commit is contained in:
Emil Dotchevski
2008-09-02 23:13:06 +00:00
parent 5a9532783d
commit 8310c9831f
3 changed files with 55 additions and 37 deletions

View File

@ -30,6 +30,32 @@ boost
} }
}; };
} }
template <class Tag,class T>
class
error_info:
public exception_detail::error_info_base
{
public:
typedef T value_type;
error_info( value_type const & value );
~error_info() throw();
value_type const &
value() const
{
return value_;
}
private:
char const * tag_typeid_name() const;
std::string value_as_string() const;
value_type const value_;
};
} }
#endif #endif

View File

@ -7,7 +7,7 @@
#define UUID_1A590226753311DD9E4CCF6156D89593 #define UUID_1A590226753311DD9E4CCF6156D89593
#include <boost/exception/exception.hpp> #include <boost/exception/exception.hpp>
#include <boost/exception/detail/error_info_base.hpp> #include <boost/exception/detail/error_info_impl.hpp>
#include <boost/exception/detail/type_info.hpp> #include <boost/exception/detail/type_info.hpp>
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <string.h> #include <string.h>

View File

@ -8,7 +8,7 @@
#include <boost/exception/exception.hpp> #include <boost/exception/exception.hpp>
#include <boost/exception/to_string_stub.hpp> #include <boost/exception/to_string_stub.hpp>
#include <boost/exception/detail/error_info_base.hpp> #include <boost/exception/detail/error_info_impl.hpp>
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <map> #include <map>
@ -16,45 +16,37 @@ namespace
boost boost
{ {
template <class Tag,class T> template <class Tag,class T>
class inline
error_info: error_info<Tag,T>::
public exception_detail::error_info_base error_info( value_type const & value ):
value_(value)
{ {
public: }
typedef T value_type; template <class Tag,class T>
inline
error_info<Tag,T>::
~error_info() throw()
{
}
error_info( value_type const & value ): template <class Tag,class T>
value_(value) inline
{ char const *
} error_info<Tag,T>::
tag_typeid_name() const
{
return type_name<Tag>();
}
~error_info() throw() template <class Tag,class T>
{ inline
} std::string
error_info<Tag,T>::
value_type const & value_as_string() const
value() const {
{ return to_string_stub(value_);
return value_; }
}
private:
char const *
tag_typeid_name() const
{
return type_name<Tag>();
}
std::string
value_as_string() const
{
return to_string_stub(value_);
}
value_type const value_;
};
namespace namespace
exception_detail exception_detail