1 | | Header: boost/exception/detail/exception_ptr.hpp |
2 | | |
3 | | Current definition of original_exception_type is |
4 | | {{{ |
5 | | typedef error_info<struct tag_original_exception_type,std::type_info const *> original_exception_type; |
6 | | }}} |
7 | | |
8 | | It uses std::type_info to store original type. |
9 | | |
10 | | |
11 | | Current definition of to_string is |
12 | | {{{ |
13 | | inline |
14 | | std::string |
15 | | to_string( original_exception_type const & x ) |
16 | | { |
17 | | return x.value()->name(); |
18 | | } |
19 | | }}} |
20 | | |
21 | | to_string() returns std::type_info::name() without demangling, so user gets type name like "St13runtime_error". It would be better to get "std::runtime_error". |
22 | | |
23 | | I suggest using |
24 | | {{{ |
25 | | inline |
26 | | std::string |
27 | | to_string( original_exception_type const & x ) |
28 | | { |
29 | | return units::detail::demangle(x.value()->name()); |
30 | | } |
31 | | }}} |
32 | | |
33 | | units::detail::demangle() is already used in boost::exception library, so no new dependency is introduced. |
| 1 | Trunk revision number 85634. |