从type_info.raw_name中取消提供字符串

时间:2016-07-22 12:48:28

标签: c++ visual-c++

我们说我有一个由.P6AAAY09HXZ表达式返回的字符串。在Visual C ++中,它返回weblogic.jms.commom.JMSException:[JMSClientExceptions:055115]Error deserialising an object Caused by: java.lang.ClassNotFoundException: com.my.TestClass 。我如何获得原始类型表达式,或至少接近它的东西?我已经尝试过 UnDecorateSymbolName ,但它会返回输入。看来此函数仅适用于修饰函数名称。是否可以修改返回的代码,以便函数接受它?

1 个答案:

答案 0 :(得分:0)

您可以使用boost::core::demangleboost::typeindex

#include <boost/core/demangle.hpp>
#include <boost/type_index.hpp>
using type = int(&(*)())[10];

auto name = typeid(type).name();
std::cout << boost::core::demangle( name ) << '\n';

std::cout << boost::typeindex::type_id<type>().pretty_name() << '\n'; 

DEMO

相关问题