fixing compile errors with some compilers

[SVN r55744]
This commit is contained in:
Emil Dotchevski
2009-08-23 22:34:19 +00:00
parent fa96125efb
commit 920ae71b00
3 changed files with 30 additions and 11 deletions

View File

@ -73,6 +73,20 @@ boost
return x.throw_line_!=-1 ? &x.throw_line_ : 0;
}
};
template <class T,class R>
struct
get_error_info_return_type
{
typedef R * type;
};
template <class T,class R>
struct
get_error_info_return_type<T const,R>
{
typedef R const * type;
};
}
#ifdef BOOST_NO_RTTI
@ -93,17 +107,7 @@ boost
#else
template <class ErrorInfo,class E>
inline
typename ErrorInfo::value_type const *
get_error_info( E const & some_exception )
{
if( exception const * x = dynamic_cast<exception const *>(&some_exception) )
return exception_detail::get_info<ErrorInfo>::get(*x);
else
return 0;
}
template <class ErrorInfo,class E>
inline
typename ErrorInfo::value_type *
typename exception_detail::get_error_info_return_type<E,typename ErrorInfo::value_type>::type
get_error_info( E & some_exception )
{
if( exception const * x = dynamic_cast<exception const *>(&some_exception) )