mutable get_error_info support

[SVN r55707]
This commit is contained in:
Emil Dotchevski
2009-08-21 22:28:44 +00:00
parent 7b4290bc76
commit fa96125efb
19 changed files with 3910 additions and 3832 deletions

View File

@ -75,26 +75,26 @@ boost
}
void
set( shared_ptr<error_info_base const> const & x, type_info_ const & typeid_ )
set( shared_ptr<error_info_base> const & x, type_info_ const & typeid_ )
{
BOOST_ASSERT(x);
info_[typeid_] = x;
diagnostic_info_str_.clear();
}
shared_ptr<error_info_base const>
shared_ptr<error_info_base>
get( type_info_ const & ti ) const
{
error_info_map::const_iterator i=info_.find(ti);
if( info_.end()!=i )
{
shared_ptr<error_info_base const> const & p = i->second;
shared_ptr<error_info_base> const & p = i->second;
#ifndef BOOST_NO_RTTI
BOOST_ASSERT( BOOST_EXCEPTION_DYNAMIC_TYPEID(*p)==ti );
#endif
return p;
}
return shared_ptr<error_info_base const>();
return shared_ptr<error_info_base>();
}
char const *
@ -117,7 +117,7 @@ boost
friend class boost::exception;
typedef std::map< type_info_, shared_ptr<error_info_base const> > error_info_map;
typedef std::map< type_info_, shared_ptr<error_info_base> > error_info_map;
error_info_map info_;
mutable std::string diagnostic_info_str_;
mutable int count_;