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,46 +16,38 @@ 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
{
public:
typedef T value_type;
error_info( value_type const & value ): error_info( value_type const & value ):
value_(value) value_(value)
{ {
} }
template <class Tag,class T>
inline
error_info<Tag,T>::
~error_info() throw() ~error_info() throw()
{ {
} }
value_type const & template <class Tag,class T>
value() const inline
{
return value_;
}
private:
char const * char const *
error_info<Tag,T>::
tag_typeid_name() const tag_typeid_name() const
{ {
return type_name<Tag>(); return type_name<Tag>();
} }
template <class Tag,class T>
inline
std::string std::string
error_info<Tag,T>::
value_as_string() const value_as_string() const
{ {
return to_string_stub(value_); return to_string_stub(value_);
} }
value_type const value_;
};
namespace namespace
exception_detail exception_detail
{ {