};
namespace print_detail {
- std::string strip_type_junk(std::string const& str) {
- return std::regex_replace(str, std::regex("^([a-z_]+::)*([a-z_]*)_t<"), "$2<");
+ inline std::string strip_type_junk(std::string const& str) {
+ return std::regex_replace(str, std::regex("(?:struct )?([a-z_]+::)*([a-z_]*)_t<((?:struct )?[a-z:<>_]*)>"), "$2<$3>");
}
}