Re-implemented type name demangling.

The new implementation does not depend on Boost.Units and is fully contained in Boost.Exception.
This commit is contained in:
Andrey Semashev
2014-05-31 21:54:52 +04:00
parent b2221bf92d
commit 7062572c8f
3 changed files with 42 additions and 13 deletions

View File

@ -16,9 +16,9 @@
#include <boost/exception/get_error_info.hpp>
#include <boost/exception/info.hpp>
#include <boost/utility/enable_if.hpp>
//#ifndef BOOST_NO_RTTI
//#include <boost/units/detail/utility.hpp>
//#endif
#ifndef BOOST_NO_RTTI
#include <boost/exception/detail/type_info.hpp> // exception_detail::demangle()
#endif
#include <exception>
#include <sstream>
#include <string>
@ -151,7 +151,7 @@ boost
#ifndef BOOST_NO_RTTI
if ( verbose )
tmp << std::string("Dynamic exception type: ") <<
/*units::detail::demangle*/((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n';
exception_detail::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n';
#endif
if( with_what && se && verbose )
tmp << "std::exception::what: " << wh << '\n';